我需要制作一个跨越2个数据库的动态查询。
Db1:表1
Db2:表2
首先,我将根据db1中table1的硬编码ID选择一些项目。
Select *
from Db1.Table1
where Id = 123
Table1
有一个名为CityId
的列,它是Db2.Table2
的一部分。因此,在Db2.Table2
中插入新项目时,CityId
是一个标识列。
现在我需要这样的东西:
use Db1
go
select *
from Db1.Table1
where Id = 123
use Db2
go
select *
from Db2.Table2
where CityId in (select CityID
from Db1.Table1
where Id = 123) // how can I solve this cross db query?
答案 0 :(得分:0)
如果我理解正确,您只需要使用三部分命名:
select t2.*
from Db2..Table2 t2
where t2.CityId in (select t1.CityID from Db1..Table1 t1 where t1.Id = 123)
默认架构名称通常为dbo
,因此您可以更明确:
select t2.*
from Db2.dbo.Table2 t2
where t2.CityId in (select t1.CityID from Db1.dbo.Table1 t1 where t1.Id = 123)