子查询,在一个查询语句中又出现了查询语句
子查询可以出现在from和where后面
from 表子查询(结果一般为多行多列)把查询结果继续当一张表对待
where 标量子查询(结果集只有一行一列)查询身高最高的学生,查询到一个最高身高
列子查询(结果集只有一行多列)
对上表进行如下操作
查询身高最高的学生
-- 查询身高最高的学生
SELECTNAME,height
FROMstudent
WHERE height =(SELECTMAX (height)FROMstudent)SELECTNAME,heightFROMstudentWHERE height IN(SELECTheightFROMstudentWHERE height = 1.80OR height = 1.57)
查询姓名重复的学生
-- 查询姓名重复的学生
SELECT*
FROM(SELECTNAME,COUNT (*) cFROMstudentGROUP BY NAME) t
WHERE t.c > 1
查询身高大于平均身高的学生
-- 查询身高大于平均身高的学生
SELECTNAME,height
FROMstudent
WHERE height >(SELECTAVG (height)FROMstudent)
查询与李四同专业的学生
-- 查询与李四同专业的学生
SELECT*
FROMstudent
WHERE majorid =(SELECTmajoridFROMstudentWHERE NAME = '李四')
查询每个专业中升高最高的学生
-- 查询每个专业中身高最高的学生的信息
SELECT*
FROMstudent sINNER JOIN(SELECTMAX (height) mt,majorid,COUNT (*)FROMstudentGROUP BY majorid) tON s.height = t.mtAND s.majorid = t.majorid