多列子查询
当是单行多列的子查询时,主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较;
当是多行多列子查询时,主查询语句的条件语句中引用子查询结果时必须用多行比较符号(IN,ALL,ANY)来进行比较。
案例
查看哪些国籍的教师年龄等于我司该国籍教师最大年龄
SELECT name, age
FROM teachers
WHERE (name, age)
IN(
SELECT name,MAX(age)
FROM teachers
GROUP BY country
);执行输出结果
mysql> SELECT name, age
-> FROM teachers
-> WHERE (name, age)
-> IN(
-> SELECT name,MAX(age)
-> FROM teachers
-> GROUP BY country
-> );
+------------------+-----+
| name | age |
+------------------+-----+
| Eastern Heretic | 20 |
| Northern Beggar | 21 |
| Western Venom | 28 |
| Southern Emperor | 21 |
+------------------+-----+
4 rows in set (0.01 sec)练习题
使用课程表courses,查询每个教师授课学生人数最高的课程名称和上课人数
目标输出结果
Last updated
Was this helpful?