使用 anti join 诊断问题
关于 semi join 做得很好!anti join 是一种相关且强大的连接工具。它对于检查连接结果中记录数量是否异常尤其有用。
假设您想找出大洋洲国家所使用的货币。您写了如下的 INNER JOIN,它返回了 15 条记录。现在,您想确认 countries 表中的所有大洋洲国家都包含在该结果中。您将在第一个步骤完成这一点。
SELECT c1.code, name, basic_unit AS currency
FROM countries AS c1
INNER JOIN currencies AS c2
ON c1.code = c2.code
WHERE c1.continent = 'Oceania';
如果有任何大洋洲国家在这个 INNER JOIN 中被排除,您希望返回这些国家的名称。您将在第二个步骤中编写一个 anti join 来实现这一点!
本练习是课程的一部分