我需要确定一个表中缺少哪些记录,以另一个表进行比较。
我试过了:
SELECT * FROM tableA WHERE tableA.id NOT IN (SELECT tableB.id FROM tableB)
当然,当数据很小但表A和表B都有超过400k条记录并且过程卡住时,它通常有效,有没有更优化的方法可以做到这一点?
连接通常比 IN 和 NOT IN 子句快。试试这个:
SELECT tableA.*
FROM tableA left join tableB on tableA.id = tableB.id
WHERE tableB.id is null