建设艺术网站需要多少钱,济南济南网站建设,九江有哪些免费推广网站,模拟百度搜索词进入网站子查询子查询基本概念#xff08;公式#xff09;子查询分类按照结果分类标量 子查询列 子查询行 子查询表 子查询子查询
基本概念#xff08;公式#xff09;
SQL查询语句中嵌套Select语句#xff0c;称为嵌套查询#xff0c;亦称为子查询#xff1b;
select * from…
子查询子查询基本概念公式子查询分类按照结果分类标量 子查询列 子查询行 子查询表 子查询子查询
基本概念公式
SQL查询语句中嵌套Select语句称为嵌套查询亦称为子查询
select * from t1 where column1(select column1 from t2);
# (select column1 from t2) 内容称为子查询子查询分类
根据子查询结果不同可以分为
标量子查询子查询结果为单个值列子查询子查询结果为一列行子查询子查询结果为一行表子查询子查询结果为多行多列
根据子查询位置可以分为
where 子查询from 子查询select 子查询 按照结果分类
标量 子查询
标量子查询子查询结果为单个值
e.g.1e.g.1e.g.1 查询销售部的员工信息
# 子查询为查询销售部的id值
# 子查询语句为(select id from dept where name销售部)
select * from emp where dept_id(select id from dept where name销售部);e.g.2e.g.2e.g.2 查询在 老徐 入职之后的员工信息
# 子查询为查询老徐的入职日期
# 子查询语句为(select entrydate from emp where name老徐)
select * from emp where entrydate (select entrydate from emp where name老徐);列 子查询
列子查询子查询返回的结果是一列
in # 在指定集合范围内多选一
not in # 不在指定集合范围内
any # 子查询返回列表的任意一个值满足
some # 子查询返回列表的任意一个值满足
all # 子查询返回列表的所有值都必须满足e.g.1e.g.1e.g.1 查询销售部和市场部所有员工信息
# 子查询为查询销售部和市场部的部门id
# 子查询语句为(select id from dept where name销售部 or name市场部)
select * from emp where dept_id in (select id from dept where name市场部 or name销售部);e.g.2e.g.2e.g.2 查询比财务部所有人工资都高的员工信息
# 子查询为查询财务部所有人工资
# 子查询语句为select salary from emp where dept_id (select id from dept where name 财务部);
select * from emp where salary all(select salary from emp where dept_id (select id from dept where name 财务部));e.g.3e.g.3e.g.3 查询比研发部任意一个员工工资高的员工信息
# 子查询为查询研发部所有人工资
# 子查询语句为select salary from emp where dept_id (select id from dept where name 研发部);
select * from emp where salary any(select salary from emp where dept_id (select id from dept where name 研发部));
# any 换成 some 结果相同行 子查询
行子查询子查询返回的结果是一行多列
e.g.e.g.e.g. 查询与 老徐 的薪资以及直属领导相同的员工信息
# 子查询为查询”老徐“的薪资以及直属领导
# 子查询语句为(select salary,managerid from emp where name老徐);
select * from emp where (salary,managerid) (select salary,managerid from emp where name老徐);表 子查询
表子查询子查询返回结果是多行多列
e.g.1e.g.1e.g.1 查询与 老徐老张 的职位和薪资相同的员工信息
# 子查询为查询”老徐“”老张“的职位和薪资
# 子查询语句为(select job,salary from emp where name老徐 or name老张);
select * from emp where (job,salary) in (select job,salary from emp where name老徐 or name老张);e.g.2e.g.2e.g.2 查询入职日期是2006-01-01之后的员工信息以及其部门信息
# 子查询为查询入职日期在2006-01-01之后的员工信息
# 子查询语句为(select * from emp where entrydate 2006-01-01);
select e.*, d.* from (select * from emp where entrydate 2006-01-01) e left join dept d on e.dept_id d.id;