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