Sql server SQL Server多对多查询
我有两个表,我们把它们称为Sql server SQL Server多对多查询,sql-server,Sql Server,我有两个表,我们把它们称为table1和table2。它们都有一个名为ID1和ID2的列,这是两个表各自的主键 我还有另一个表,叫做table3,它包含ID1和ID2,在这两个表之间建立了多对多关系 我需要的是从表2中获取与表1中的记录不相关的所有记录 前 表1包含ID为1的记录 表2包含两条ID为1、2的记录 表3包含一条值为1-1的记录 我需要一个查询,将给我作为结果2 有人能给我一个继续的建议吗 谢谢 也可以使用左连接: SELECT t2.ID2 FROM table2 t2
table1
和table2
。它们都有一个名为ID1
和ID2
的列,这是两个表各自的主键
我还有另一个表,叫做table3
,它包含ID1
和ID2
,在这两个表之间建立了多对多关系
我需要的是从表2中获取与表1中的记录不相关的所有记录
前
- 表1包含ID为1的记录
- 表2包含两条ID为1、2的记录
- 表3包含一条值为1-1的记录
我需要一个查询,将给我作为结果2
有人能给我一个继续的建议吗
谢谢
也可以使用左连接:
SELECT t2.ID2
FROM table2 t2
LEFT JOIN table3 t3
ON t2.ID2 = t3.ID2
WHERE t3.ID2 IS NULL;
也可以使用左连接:
SELECT t2.ID2
FROM table2 t2
LEFT JOIN table3 t3
ON t2.ID2 = t3.ID2
WHERE t3.ID2 IS NULL;
在SS 2005+中,第一个查询短路。@MaiOM:一般来说,不存在的版本应该更好。请参阅和。如果可以的话,我会再次+1,以参考Quassnoi的优秀文章。在SS 2005+中,第一个查询短路。@MaiOM:一般来说,不存在的版本应该更好。请参阅和。如果我可以参考Quassnoi的优秀文章,我会再次+1。关于这个主题已经有大约12000个问题了。关于这个主题已经有大约12000个问题了。