MySQL 子查询是在 SELECT、INSERT、UPDATE 或 DELETE 语句的 WHERE 或 HAVING 子句中嵌套的 SELECT 语句。它返回一个值或一个值列表,用于比较或过滤。
例如,可以使用子查询来查找所有订单总额大于 1000 美元的客户:
复制SELECT * FROM customers
WHERE (SELECT SUM(amount) FROM orders WHERE customer_id = customers.id) > 1000;
子查询也可以用于 INSERT、UPDATE 或 DELETE 语句中,以便根据查询的结果来插入、更新或删除数据。
例如,可以使用子查询来更新所有订单总额小于 1000 美元的客户的信用额度:
复制UPDATE customers
SET credit_limit = credit_limit + 500
WHERE (SELECT SUM(amount) FROM orders WHERE customer_id = customers.id) < 1000;
注意:MySQL 中的子查询必须用圆括号括起来。