记录下以后就不百度了;
exists
SELECT
A.*
FROM
A
WHERE
EXISTS (SELECT B.* FROM B WHEN A.id = B.id)
not exists
SELECT
A.*
FROM
A
WHERE
NOT
EXISTS (SELECT B.* FROM B WHEN A.id = B.id)
当A表数据大于B表数据时,选择in比exists执行效率要高
相反,A表数据小于B表数据时,选择exists比较高效
not in 会使索引失效,故无论在哪种情况not exists都比not in高效