24、MySQL-子查询

来源:互联网 发布:ted软件下载 编辑:程序博客网 时间:2024/06/06 03:03
1、由In引发的子查询
mysql> -- 查询公开性别的所有员工
mysql> SELECT * FROM employee WHERE sex IN (SELECT sex FROM department WHERE sex!='保密' );
+----+-----------+------+------+---------+------+-------+
| id | username  | age  | addr | salary  | sex  | depId |
+----+-----------+------+------+---------+------+-------+
|  1 | 张三      |   21 | 山东 | 5432.12 | 男   |     1 |
|  2 | 李四      |   32 | 河北 | 6432.00 | 男   |     2 |
|  3 | 王五      |   26 | 北京 | 5932.92 | 女   |     3 |
|  4 | 赵六      |   32 | 上海 | 6232.14 | 男   |     4 |
|  6 | Mr Adword |   55 | 美国 | 9432.99 | 男   |     4 |
|  8 | 孙八      |   62 | 上海 | 9932.14 | 男   |     2 |
|  9 | Mr lili   |   45 | 美国 | 9132.99 | 女   |     1 |
+----+-----------+------+------+---------+------+-------+

2、由比较运算符引发的子查询

mysql> -- 查询开发部门的所有员工
mysql> SELECT * FROM employee WHERE depId = (SELECT id FROM department WHERE depName='开发部');
+----+----------+------+------+---------+------+-------+
| id | username | age  | addr | salary  | sex  | depId |
+----+----------+------+------+---------+------+-------+
|  1 | 张三     |   21 | 山东 | 5432.12 | 男   |     1 |
|  5 | 田七     |   19 | 北京 | 4932.92 | 保密 |     1 |
|  7 | 田七     |   19 | 北京 | 4932.92 | 保密 |     1 |
|  9 | Mr lili  |   45 | 美国 | 9132.99 | 女   |     1 |
+----+----------+------+------+---------+------+-------+

3、由EXISTS引发的子查询


mysql> --如果有设计部门则查询所有员工
mysql> SELECT * FROM employee WHERE EXISTS (SELECT id FROM department WHERE depName='设计部');
Empty set (0.00 sec)

mysql>--如果有开发部门则查询所有员工
mysql> SELECT * FROM employee WHERE EXISTS (SELECT id FROM department WHERE depName='开发部');
+----+-----------+------+------+---------+------+-------+
| id | username  | age  | addr | salary  | sex  | depId |
+----+-----------+------+------+---------+------+-------+
|  1 | 张三      |   21 | 山东 | 5432.12 | 男   |     1 |
|  2 | 李四      |   32 | 河北 | 6432.00 | 男   |     2 |
|  3 | 王五      |   26 | 北京 | 5932.92 | 女   |     3 |
|  4 | 赵六      |   32 | 上海 | 6232.14 | 男   |     4 |
|  5 | 田七      |   19 | 北京 | 4932.92 | 保密 |     1 |
|  6 | Mr Adword |   55 | 美国 | 9432.99 | 男   |     4 |
|  7 | 田七      |   19 | 北京 | 4932.92 | 保密 |     1 |
|  8 | 孙八      |   62 | 上海 | 9932.14 | 男   |     2 |
|  9 | Mr lili   |   45 | 美国 | 9132.99 | 女   |     1 |
+----+-----------+------+------+---------+------+-------+

4、由ANY|SOME|ALL修饰比较运算符引发的子查

  • > 或者 >=ANY  或者 >=SOME 相当于大于子查询中的最小值
  • >=ALL 相当于大于子查询中的最大值
  • < 或者 <=ANY  或者 <=SOME 相当于大于子查询中的最大值
  • <=ALL 相当于大于子查询中的最小值
  • =ANY相当于IN (等于的时候只能等于ANY或者SOME)
  •  <>=ALL相当于NOT IN(不等于的时候只能不等于ALL)




0 0
原创粉丝点击