示例
示例
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1 FROM orders o WHERE o.user_id = u.id
);| 写法 | SELECT 1 是惯例,SELECT 列表内容不参与判断 |
|---|---|
| 相关子查询 | 常见形式是引用外层表的列 |
| 执行 | 找到匹配即可短路 |
EXISTS 判断子查询是否有行:逻辑上找到首行即返回真,适合“是否存在”类过滤。
SELECT *
FROM users u
WHERE EXISTS (
SELECT 1 FROM orders o WHERE o.user_id = u.id
);| 写法 | SELECT 1 是惯例,SELECT 列表内容不参与判断 |
|---|---|
| 相关子查询 | 常见形式是引用外层表的列 |
| 执行 | 找到匹配即可短路 |