Sql server 跨2个数据库连接4个表

Sql server 跨2个数据库连接4个表,sql-server,stored-procedures,Sql Server,Stored Procedures,TB1、TB2、TB3位于服务器上的一个数据库中,TB4位于另一个数据库中 联接所需的列信息如下: TB1-a1、b2列 TB2-a2、b2、c3列 TB3-第a3列 TB4-第a4列 TB1、TB2、TB3通过ID TB1的ID是TB2、TB3和TB4中的主键和外键 我正在使用SQLServerManagementStudio 代码: 选择ID 来自TB1、TB2、TB3 其中TB1.ID=TB2.TB1.ID您可以这样链接它们(不要忘了将您遗漏的关系放在下面): 还可以用每个表所在的数据

TB1、TB2、TB3
位于服务器上的一个数据库中,
TB4
位于另一个数据库中

联接所需的列信息如下:

  • TB1-a1、b2列
  • TB2-a2、b2、c3列
  • TB3-第a3列
  • TB4-第a4列
TB1、TB2、TB3通过
ID
TB1的ID是TB2、TB3和TB4中的主键和外键

我正在使用SQLServerManagementStudio

代码:

选择ID 来自TB1、TB2、TB3
其中TB1.ID=TB2.TB1.ID

您可以这样链接它们(不要忘了将您遗漏的关系放在下面):

还可以用每个表所在的数据库名称替换
db1
db2



最后一个注意事项是,您的代码提供了冗余信息,因为您没有制定所有限制。因此,产生了笛卡尔积。

您使用的是哪种RDBMS?到目前为止你尝试了什么?在我看来,这个问题没有什么意义,提供的信息也不够充分。您是否可以编辑以显示已尝试的代码?您所说的“冗余信息”是什么意思?与TB4的关系是什么?“ID”必须是这些表中某些表的外键。。。?
SELECT t1.a1, t1.b2, t2.a2, t2.b2, t2.c3, t3.a3, t4.a4
FROM db1..TB1 t1
INNER JOIN db1..TB2 t2 ON t1.ID = t2.ID
INNER JOIN db1..TB3 t3 ON t1.ID = t3.ID
INNER JOIN db2..TB4 t4 ON --put relation here