子查询:嵌套查询与相关子查询

引言 子查询(Subquery)是嵌套在其他查询中的SELECT语句,用于实现复杂的查询逻辑。 一、子查询分类 1.1 按返回结果分类 标量子查询:返回单个值(1行1列) 列子查询:返回一列多行 行子查询:返回一行多列 表子查询:返回多行多列 1.2 按执行方式分类 非相关子查询:独立执行,与外层查询无关 相关子查询:依赖外层查询,每行都执行一次 二、标量子查询 返回单个值,可用于比较运算。 -- 查询价格高于平均价格的商品 SELECT name, price FROM products WHERE price > (SELECT AVG(price) FROM products); -- 查询销量最高的商品 SELECT name, sales FROM products WHERE sales = (SELECT MAX(sales) FROM products); 三、列子查询 返回一列多行,通常配合IN、ANY、ALL使用。 3.1 IN / NOT IN -- 查询有订单的用户 SELECT name FROM users WHERE id IN (SELECT DISTINCT user_id FROM orders); -- 查询没有订单的用户 SELECT name FROM users WHERE id NOT IN (SELECT user_id FROM orders WHERE user_id IS NOT NULL); ⚠️ NOT IN的陷阱:子查询包含NULL会返回空结果。 ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...