SQL Server中如何检查表1的复合主键不存在于表2中
解决SQL Server中复合主键不在另一张表的单行查询方案
SQL Server不支持将多列组合直接放在IN子句中,所以你尝试的(id1, id2) NOT IN (...)写法无法运行。推荐使用NOT EXISTS子句实现需求,这是符合SQL Server语法的单行简便方案,也适合在Python程序中生成。
对应的查询语句如下:
SELECT * FROM TABLE_1 t1 WHERE NOT EXISTS (SELECT 1 FROM TABLE_2 t2 WHERE t2.id1 = t1.id1 AND t2.id2 = t1.id2)
这个写法逻辑直观,SQL Server对NOT EXISTS的查询优化效果较好,且结构简单,在Python中拼接表名、列名时也容易处理。
内容的提问来源于stack exchange,提问作者Mavil
相关产品推荐
相关产品推荐

