MySQL子查询之列子查询

观看本文前 需要了解子查询基本概念和标量子查询 如果不了解可以查看我的文章
MySQL子查询之标量子查询
知道标量子查询是查出的结果 为 单行单列的情况下
列子查询是指 子查询返回的结果 是一列 可以有多行的数据

我们来看一个案例
department 部门表
在这里插入图片描述
staff 员工表
在这里插入图片描述
他们是一个外键关系 用户表存了部门表的id 对应员工部门

然后 这时 我们想找出 开发部和人事部下的员工

首先 我们要找到人事部和开发部的id
执行sql如下

select id from department where name = "人事部" or name = "开发部";

在这里插入图片描述
此时 我们查出 人事部和开发部的id 分别是 1和4
然后我们通过这个结果来查员工表 查员工表 departmentid 外键与这两个id相同的数据

select name from staff where departmentid in(1,4);

运行结果如下
在这里插入图片描述
就找出了这两个用户
而这两段sql 我们就可以通过一个列子查询实现

参考代码如下

select name from staff where departmentid in(select id from department where name = "人事部" or name = "开发部");

运行结果如下
在这里插入图片描述
非常的方便

猜你喜欢

转载自blog.csdn.net/weixin_45966674/article/details/127505614