一、引言
上篇博客学习了列子查询。
接下来学习子查询中的第三种——行子查询。
- 行子查询
1、概念
子查询返回的结果是一行(当然可以是多列),这种子查询称为行子查询。
2、常用的操作符
= 、 <> (不等于) 、IN 、NOT IN
接下来通过一个需求去演示和学习行子查询的用法。
二、实操
打开图形可视化工具:DataGrip 进行操作。
(0)员工表 emp ,部门表 dept 。
emp
dept
(1)查询与 “ 张无忌 ” 的薪资及直属领导相同的员工信息。
1、分析(拆解需求)
先查询张无忌的薪资和直属领导,再查询满足需求的人
如果是两个SQL语句,分开查询
第一步
SELECT salary,managerid FROM emp WHERE name='张无忌';
第二步
SELECT * FROM emp WHERE salary=12500 AND managerid=1;
2、实操
下面展示新的写法(合并成一条SQL语句进行查询)
SELECT * FROM emp WHERE (salary,managerid) = (SELECT salary,managerid FROM emp WHERE name='张无忌');
把 WHERE 后面跟的字段用括号就可以是字段列表了,然后用操作符 "=" 来与子查询相等。因为内部子查询返回结果就是一个一行多列的(行子查询),刚好和前面两个字段匹配。
这种案例就是关于行子查询,因为子查询返回的结果是一行多列。
这篇博客的学习就到这了。