EXISTS语句
- exists:表示存在
- 判断子查询的结果中,是否存在至少一条记录
- EXISTS会返回 TRUE/FALSE 的条件表达式
- EXISTS 必须配合一个子查询使用
EXISTS (子查询)
案例
- 查询用户表中的用户,只保留订单表中存在对应订单的用户。
- 判断规则
- 子查询返回至少一行 → EXISTS = TRUE → 保留外层数据
- EXISTS = TRUE → WHERE 条件成立
- 子查询没有返回数据 → EXISTS = FALSE → 排除外层数据 EXISTS = FALSE → WHERE 条件不成立
- 子查询返回至少一行 → EXISTS = TRUE → 保留外层数据
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);