我有两个简单的表:one
主键id
,two
主键id
和外键oneId
。
我希望one
中的所有行都没有two.oneId
中的引用。
我能做到
SELECT ... FROM one LEFT JOIN two ON two.oneId = one.id WHERE two.id IS NULL
SELECT ... FROM one WHERE NOT exists(SELECT 1 FROM two WHERE oneId = one.id)
SELECT ... FROM one WHERE id NOT IN (SELECT oneId FROM two)
哪个选项更好,为什么?
答案 0 :(得分:2)
第二种选择是最好的 - 它将被翻译成反连接。
第一名看起来也不错,它可能有相同的执行计划。