主题
子查询
1. 什么是子查询
子查询是嵌套在另一个 SQL 查询中的查询语句,常用于在主查询中使用另一个查询的结果。
2. 基本语法
sql
SELECT column1, column2
FROM table1
WHERE column3 IN (
SELECT column3
FROM table2
WHERE condition
);
3. 示例
查询所有有订单的客户:
sql
SELECT name
FROM customers
WHERE id IN (
SELECT customer_id
FROM orders
);
4. 标量子查询
子查询只返回一个值,可以用于赋值或比较:
sql
SELECT name
FROM customers
WHERE id = (
SELECT customer_id
FROM orders
WHERE order_id = 1001
);
5. 相关子查询
子查询依赖外层查询的字段,每行执行一次:
sql
SELECT c.name,
(SELECT COUNT(*) FROM orders o WHERE o.customer_id = c.id) AS order_count
FROM customers c;
子查询能够增强查询灵活性,实现复杂的数据筛选和多表关联。