深入 EXISTS 子查询

EXISTS 谓词代表存在量词 ∃。使用 EXISTS 的子查询不会返回实际数据,只会产生逻辑真值“true”或逻辑假值“false”。

  • 如果内层查询结果非空,外层 WHERE 子句返回真值。
  • 如果内层查询结果为空,外层 WHERE 子句返回假值。

由于 EXISTS 子查询只返回真假值,目标列表达式通常使用 *,列名无实际意义。

NOT EXISTS 谓词

NOT EXISTS 与 EXISTS 相反:

  • 如果内层查询结果非空,外层 WHERE 子句返回假值。
  • 如果内层查询结果为空,外层 WHERE 子句返回真值。