跳到主要内容

EXISTS语句

  • exists:表示存在
  • 判断子查询的结果中,是否存在至少一条记录
  • EXISTS会返回 TRUE/FALSE 的条件表达式
  • EXISTS 必须配合一个子查询使用
sql
EXISTS (子查询)

案例​

  • 查询用户表中的用户,只保留订单表中存在对应订单的用户。
  • 判断规则
    • 子查询返回至少一行 → EXISTS = TRUE → 保留外层数据
      • EXISTS = TRUE → WHERE 条件成立
    • 子查询没有返回数据 → EXISTS = FALSE → 排除外层数据 EXISTS = FALSE → WHERE 条件不成立
sql
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);