如何查询“此表中没有链接记录”

时间:2018-02-02 12:50:21

标签: postgresql

我有两个简单的表:one主键idtwo主键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)
  • 可能存在其他选择

哪个选项更好,为什么?

1 个答案:

答案 0 :(得分:2)

第二种选择是最好的 - 它将被翻译成反连接。

第一名看起来也不错,它可能有相同的执行计划。