1. Learn
  2. /
  3. 课程
  4. /
  5. SQL 数据连接

Connected

道练习

使用 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 来实现这一点!

说明 1 / 共 2 个

undefined XP
    1
    2
  • 先编写查询,从 countries 表中返回 continent 为 Oceania 的所有国家的 code 和 name(按此顺序,不要起别名)。
  • 观察返回的记录数,并与给定的 INNER JOIN(返回 15 条记录)进行比较。