sql server2005 跨数据库查询信息的sql怎么写,就是说,有三个数据库各有一个表字段一样,怎样一起查询
3个回答
展开全部
假设三个数据库名字为:DB1, DB2, DB3 ; 表名依次为: table1, table2, table3
就是可以关联的时候在表之前加上数据库名字就可以了,例如DB1.dbo.table1 , dbo是架构名.
其他的具体操作就跟同一个数据库中的三个表操作一样.
具体看你的需求,可以采用,left join, inner join,right join等等关联这三张表.
SELECT * FROM DB1.dbo.table1 t1
left join DB2.dbo.table2 t2 on t1.col_name = t2.col_name
left join DB3.dbo.table3 t3 on t1.col_name = t3.col_name
order by ...
当然了,关联的前提是你登陆的账户有能同时访问这三个数据库等操作的权限...
就是可以关联的时候在表之前加上数据库名字就可以了,例如DB1.dbo.table1 , dbo是架构名.
其他的具体操作就跟同一个数据库中的三个表操作一样.
具体看你的需求,可以采用,left join, inner join,right join等等关联这三张表.
SELECT * FROM DB1.dbo.table1 t1
left join DB2.dbo.table2 t2 on t1.col_name = t2.col_name
left join DB3.dbo.table3 t3 on t1.col_name = t3.col_name
order by ...
当然了,关联的前提是你登陆的账户有能同时访问这三个数据库等操作的权限...
展开全部
同意楼上的观点,一般用数据库集群,那样你的问题就不会存在了!!
但是如果你库已经建好了,如果你有足够的权限,你可以按照下面的试试:
select * from a.dbo.table1 inner join b.dbo.table2 on table1.col=table2.col......
这里的a、b表示两个库!!以上是两个库,三个库也是一样的!你可以试试,我们以前有用过,但是要保证权限够,否则没有用的!
但是如果你库已经建好了,如果你有足够的权限,你可以按照下面的试试:
select * from a.dbo.table1 inner join b.dbo.table2 on table1.col=table2.col......
这里的a、b表示两个库!!以上是两个库,三个库也是一样的!你可以试试,我们以前有用过,但是要保证权限够,否则没有用的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不赞成这样。
你想想,如果是网站中的,没法实现的。
你想想,如果是网站中的,没法实现的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询