MySQL子查询

Posted C

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL子查询相关的知识,希望对你有一定的参考价值。

​ 什么是子查询:当一个查询是另一个查询的子部分时,我们叫做子查询

​ 子查询的分类:

​ ①从对象间的关系分类

​ 相关子查询:select * from t1 where a1=(select b from t2 where b=a1);

​ 非相关子查询:select * from t1 where a1=(select b from t2 where b=2);

​ ②从查询结果上分类

​ 单列子查询

​ 如何显示与SMITH同一部门的所有员工?

​ select * from emp where deptno=(select deptno from emp where ename=\'smith\') and ename !=\'smith\';

​ 多列子查询

​ 如何查询与smith的部门和岗位完全相同的所有雇员

​ select * from emp where (deptno,job) = (select deptno,job from emp where ename=\'smith\');

​ 多行子查询

​ 如何查询和10号部门的工作相同的雇员的名字、岗位、工资、部门号

​ select ename,job,sal,deptno from emp where job in(select job from emp where deptno=10);

​ 子查询可以出现在哪些位置?

​ 。查询列位置

​ 必须是单列子查询并且要取别名,否则报错

​ 。from子句位置

​ 必须非相关子查询,否则报错

​ 。where子句位置

​ 范围操作符> < ,必须是单列子查询

​ in 可以是多列子查询

以上是关于MySQL子查询的主要内容,如果未能解决你的问题,请参考以下文章

那个mysql 子查询和连接查询 一般常用哪个 谁效率高些

MySQL—— 子查询

带你学MySQL系列 | 今天我们说说MySQL“子查询”!

MySQL------ 子查询

MySQL------ 子查询

MySQL随记 - 子查询