MySql数据库基础之子查询详解
1. 什么是子查询
select 语句中嵌套 select 语句,被嵌套的 select 语句称为子查询。
2. 子查询可以出现在哪里
select
...(select)
from
...(select)
where
...(select)
3. where子句的子查询
找出比最低工资高的员工姓名和工资?
第一步查询最低工资是多少
select min(sal) from emp = 800
第二步找出>800的
select ename, sal from emp where sal > 800
第三步合并
select ename, sal from emp where sal > (select min(sal) from emp)
mysql> select ename, sal from emp where sal > (select min(sal) from emp);
4. from子句的子查询
from 后面的子查询,可以将子查询的查询结果当做一张临时表。
找出每个岗位的平均工资的薪资等级?
第一步:找出每个岗位的平均工资(按照岗位分组求平均值)
select job, avg(sal) from emp group by job
第二步:将以上的查询结果当做一张真实存在的表,将该表与 salgrade 进行连接
t.avgsal between s.losal and s.hisal
![mysql> select t.*, s.grade from (select job, avg(sal) as avgsal from emp group by job) t join salgrade s on t.avgsal between s.losal and s.hisal;]
5. select后面出现的子查询
找出每个员工的部门名称,要求显示员工名,部门名?
mysql> select e.ename, (select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;!
```![在这里插入图片描述](https://img-blog.csdnimg.cn/8b09cbc61ed047fe8c3cf087b3836006.png)> 对于 select 后面的子查询 select,**只能返回一条记录**
关于MySql数据库基础之子查询详解的文章就介绍至此,更多相关MySql子查询内容请搜索编程宝库以前的文章,希望以后支持编程宝库!
1. 什么是连接查询从一张表中单独查询,称为单表查询。跨表查询,多张表联合其来查询,称为连接查询。 2. 连接查询的方式内连接:等值连接非等值连接自连接外连接:左外连接(左连接)右外连接(右 ...