子查询

子查询的概念

出现在其他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)

原文地址:https://www.cnblogs.com/Abby123wen/p/11115668.html