求两个查询结果的差集,MySQL直接提供了关键字not in,但是not in的效率极其低下,这时我们可以使用左链接的方式求查询。
例题:查询在usertable表中的用户但不在blog中的用户。
NOT IN 实现
SELECT id
FROM usertable
WHERE id NOT IN (SELECT id FROM blog);
左外联结实现
SELECT id
FROM usertable LEFT JOIN (SELECT id AS i FROM blog) AS t1
ON usertable.id=t1.i
WHERE t1.i IS NULL;