我在SQL Server中有两个不同的模式(比如S1,S2)。这些模式中有两个表(比如S1.Table1,S2.Table2)。我想从架构S1中查询这两个表。
S1和S2都在SQL Server 2005数据库中。我想做这样的事情:
select T1.Id
from S1.Table1 T1
, S2.Table2 T2
Where T1.Id = T2.refId
答案 0 :(得分:5)
使用3部分对象名称来指定数据库:我假设您的意思是“数据库”而不是“架构”(在Oracle意义上说)
select T1.Id
from
DB1.schema.Table1 T1
JOIN
DB2.schema.Table2 T2 ON T1.Id = T2.refId
注意更好的JOIN方式......
答案 1 :(得分:1)
您没有提及数据库是否在同一台服务器上。如果是,您可以按照上面的答案。如果没有,您将需要在其中一个服务器上创建链接服务器,然后您可以通过
引用链接服务器
select T1.Id
from [linkedservername].DB1.Schema.Table1 T1
, S2.Table2 T2
Where T1.Id = T2.refId
答案 2 :(得分:0)
Select T1.Id
FROM
s1.Table1 T1
JOIN
s2.Table2 T2
WHERE
T1.Id = T2.refId;
这是在MySQL上进行查询的方法。我认为它也适用于Oracle 11g。