日期:2014-05-18  浏览次数:20421 次

SQL不在同一个数据库里的表能做jion吗?语句该怎么写?
SQL不在同一个数据库里的表能做jion吗?语句该怎么写?
一个库里面有2张表a,b。另一个库里面有一张表c,我要得出这样的结果。

a的oiid=b的oisort,c的oiamp是一个数组,用 ", "隔开的,c的oiamp里的一个数组和b的class相等。要查询出这3张表的jion。怎么查询?c和a,b不在同一个数据库。

------解决方案--------------------
select *
from 数据库.dbo.a a , 数据库.dbo.b b , 数据库.dbo.c c
where a.oiid=b.oisort and c.oiamp=b.class
------解决方案--------------------
--在同一个服务器上吗?
select *
from database1..a inner join database1.b on a.oiid = b.oisort
inner join database2.c on charindex( ', '+b.class+ ', ', ', '+c.oiamp+ ', ') > 0
------解决方案--------------------

在同一服务器
select * from a.dbo.a1 a,b.dbo.b1 b where a.id=b.id
不同服务器
select * from openrowset( 'sqloledb ', 'a数据库服务器名或者ip '; 'sa '; '密码 ',a.dbo.a1) a,b.dbo.b1 b where a.id=b.id

------解决方案--------------------
见知识了,学习!