【MySQL】什么是子查询

1.谁的工资比Abel的高?

image

方式一:先查询Abel的工资,再查比Abel工资高的员工

SELECT salary
FROM employees
WHERE last_name = 'Abel';
SELECT last_name,salary
FROM employees
WHERE salary > 11000;

方式二:自连接

SELECT e2.last_name,e2.salary
FROM employees e1,employees e2
WHERE e2.`salary` > e1.`salary` #多表的连接条件
AND e1.last_name = 'Abel';

方式三:子查询

SELECT last_name,salary
FROM employees
WHERE salary > (
SELECT salary
FROM employees
WHERE last_name = 'Abel'
);

子查询(内查询)在主查询之前一次执行完成,子查询的结果被主查询使用。
注意事项:
(1)子查询要包含在括号内
(2)将子查询放在比较条件的右侧
(3)单行操作符对应单行子查询,多行操作符对应多行子查询

2.子查询的分类

(1)从内查询返回的结果数:单行子查询 VS 多行子查询
(2)内查询是否被执行多次:相关子查询 VS 不相关子查询
相关:查询工资大于本部门平均工资的员工信息。(不同部门平均工资不同)
不相关:查询工资大于本公司平均工资的员工信息。

posted @   植树chen  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示