子查询的概念
出现在其他SQL语句内的SELECT字句
1.子查询也叫内部查询,包含子查询的语句称为外部查询或主查询。
2.子查询自身可以包含一个或多个子查询,一个查询语句中可以可以嵌套任意数量的子查询。
子查询的分类
1.非相关子查询:
独立于外部查询,子查询只执行一次,执行完将结果传递给外部查询;
如:select * from classinfo where score>(select avg(score) from classinfo)
2.相关子查询:
依赖于外部查询的数据,外部每执行一次,子查询就执行一次;
查询每个班级成绩高于本班平均分的所有同学
select * from classinfo t1
where t1.score>
(select avg(t2.score) from classinfo t2 where t1.c_name=t2.c_name )
查询前三行
select top 3 * from classinfo (sql server)
select * from classinfo limit 1 (mysql)
比较运算符子查询
使用比较运算符的子查询
= > < >= <= != <>(不等于的意思)
select * from classinfo where id =(select MAX(id) from classinfo)