ALL 关键字与 ANY 有点类似,只不过带 ALL关键字的子查询返回的结果需同时满足所有内层查询条件。
例如,使用带 ALL关键字的子查询,查询满足条件的部门,SQL语句如下:
SELECT * FROM department WHERE did>all(select did from employee);
上述语句执行成功后,结果如下:
mysql> SELECT * FROM department WHERE did>all(select did from employee);
+-----+-----------+
| did | dname |
+-----+-----------+
| 5 | 人事部 |
+-----+-----------+
1 row in set (0.00 sec)
上述语句在执行的过程中,首先子查询会将 employee 表中的所有 did 查询出来,分别为1、2、3、4,然后将 department 表中 did 的值与之进行比较,只有大于 emnloye.did 的所有值,才是符合条件的结果,由于只有人事部的 did=5 有大于 employee 表中的所有 did ,因此最终查询结果为人事部。