Mysql子查询

含义:
出现在其他语句中的 select 语句,称为子查询或内查询;外部的查询语句,称为主查询或外查询
分类:
按子查询出现的位置:
from 后面:支持表子查询
where :支持标量子查询,列子查询
使用:

现有如下表

Mysql子查询_第1张图片

1. 查询身高最高的学生 (表量子查询)

-- 在where后面使用标量子查询(一列一行)
SELECT * FROM student WHERE height =(SELECT MAX(height) FROM student)

2.查询谁的身高等于特定值(列子查询)

-- 在where 后面 使用列子查询(一列多行)
SELECT * FROM student WHERE height IN( SELECT height FROM student WHERE height IN(1.88,1.87))

3.查询男生和女生的人数谁大于等于2(表子查询)

思路:先将男生女生分组成临时的表统计人数 然后再用条件语句显示人数大于2的性别

-- 在from后面 使用了表子查询(多行多列),把子查询的结果当作另一个表的数据来源
SELECT * FROM (SELECT COUNT(*)c,gender FROM student GROUP BY gender)t
WHERE t.c>=2

你可能感兴趣的:(mysql,数据库)