五、多表查询-4.5子查询-表子查询

一、概述

子查询返回的结果是多行多列,这种子查询称为表子查询。

常用的操作符:in

经常出现在from之后

二、演示

【例1】查询与"鹿掌客"、"宋院桥"的职位和薪资相同的员工信息

1、查询与"鹿掌客"、"宋院桥"的职位和薪资

返回的结果是一个表

2、查询与"鹿掌客"、"宋院桥"的职位和薪资相同的员工信息

3、合并两个,变为子查询

【例2】查询入职日期是"2006-01-01"之后的员工信息,及其部门信息

1、查询与入职日期是"2006-01-01"之后的员工信息

2、查询这部分员工对应的部门信息

【代码】

sql 复制代码
-- 表子查询
-- 1、查询与"鹿掌客"、"宋院桥"的职位和薪资相同的员工信息
--    a.查询与"鹿掌客"、"宋院桥"的职位和薪资
select job, salary from emp1 where name = '鹿掌客' or name = '宋院桥';  -- 返回('职员',37500),('销售',4600)
--    b.查询与"鹿掌客"、"宋院桥"的职位和薪资相同的员工信息
select * from emp1 where (job, salary) in (('职员', 37500),('销售', 4600));
-- 合并两个,变为子查询
select * from emp1 where (job, salary) in (select job, salary from emp1 where name = '鹿掌客' or name = '宋院桥');

-- 2、查询入职日期是"2006-01-01"之后的员工信息,及其部门信息
--    a.查询与入职日期是"2006-01-01"之后的员工信息
select * from emp1 where entrydate > '2006-01-01';    -- 返回一个表
--    b.查询这部分员工对应的部门信息
select e.*, d.* from (select * from emp1 where entrydate > '2006-01-01') e left join dept1 d on e.dept_id = d.id;
相关推荐
潘yi.1 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
zdkdchao1 小时前
hbase资源和数据权限控制
大数据·数据库·hbase
伤不起bb1 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
leo__5201 小时前
PostgreSQL配置文件修改及启用方法
数据库·postgresql
南風_入弦3 小时前
优化09-表连接
数据库·oracle
Snk0xHeart4 小时前
极客大挑战 2019 EasySQL 1(万能账号密码,SQL注入,HackBar)
数据库·sql·网络安全
····懂···4 小时前
数据库OCP专业认证培训
数据库·oracle·ocp
学习中的码虫5 小时前
数据库-MySQL
数据库
Karry的巡洋舰5 小时前
【数据库】安全性
数据库·oracle
软件测试小仙女6 小时前
鸿蒙APP测试实战:从HDC命令到专项测试
大数据·软件测试·数据库·人工智能·测试工具·华为·harmonyos