MySQL-SQL基础-子查询

Posted 裸奔的小鸵鸟

tags:

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

#子查询-某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询。用于子查询的关键字主要包括:
in、not in、=、!=、exists、not exists等等。
#从emp表中查询出所有部门在dept表中的所有记录

mysql> select * from dept; +--------+----------+ | deptno | deptname | +--------+----------+ | 1 | tech | | 2 | sale | | 3 | hr | | 4 | sl | +--------+----------+ 4 rows in set (0.01 sec) mysql> select * from emp; +-------+------------+------------+---------+--------+------+ | ename | birth | hirdate | sal | deptno | age1 | +-------+------------+------------+---------+--------+------+ | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 | | zzx1 | 2002-03-09 | 2009-04-03 | 2001.00 | 3 | 22 | | ttx2 | 2023-04-10 | 2010-03-04 | 4000.00 | 4 | 23 | | ssss | 2019-01-01 | 2018-01-01 | 5000.00 | 2 | 24 | +-------+------------+------------+---------+--------+------+ 4 rows in set (0.00 sec) mysql> select * from emp where deptno in(select deptno from dept); +-------+------------+------------+---------+--------+------+ | ename | birth | hirdate | sal | deptno | age1 | +-------+------------+------------+---------+--------+------+ | zzx1 | 2000-01-01 | 2000-01-01 | 2000.00 | 1 | 21 | | ssss | 2019-01-01 | 2018-01-01 | 5000.00 | 2 | 24 | | zzx1 | 2002-03-09 | 2009-04-03 | 2001.00 | 3 | 22 | | ttx2 | 2023-04-10 | 2010-03-04 | 4000.00 | 4 | 23 | +-------+------------+------------+---------+--------+------+ 4 rows in set (0.00 sec)

 

#如果子查询记录数唯一,还可以用=代替in

mysql> select * from emp where deptno=(select deptno from dept limit 1);

+-------+------------+------------+---------+--------+------+

| ename | birth      | hirdate    | sal     | deptno | age1 |

+-------+------------+------------+---------+--------+------+

| zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |

+-------+------------+------------+---------+--------+------+

1 row in set (0.00 sec)

 







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

mysql-SQL优化

MySQL-SQL查询

mysql-sql数据拼接

MySQL-SQL语法基础

mysql-sql逻辑查询顺序

mysql-sql优化前要明白的知识点