深入 EXISTS 子查询
EXISTS 谓词代表存在量词 ∃。使用 EXISTS 的子查询不会返回实际数据,只会产生逻辑真值“true”或逻辑假值“false”。
- 如果内层查询结果非空,外层 WHERE 子句返回真值。
- 如果内层查询结果为空,外层 WHERE 子句返回假值。
由于 EXISTS 子查询只返回真假值,目标列表达式通常使用 *,列名无实际意义。
NOT EXISTS 谓词
NOT EXISTS 与 EXISTS 相反:
- 如果内层查询结果非空,外层 WHERE 子句返回假值。
- 如果内层查询结果为空,外层 WHERE 子句返回真值。