子查询
子查询类似于套娃问题,就是用上一层查询的结果作为下一层查询的条件,进行最终的查询,有时候可能会套上很多层,难度不大,但是不太好想,在实际开发中可读性不高,效率比较低,所以尽量不使用子查询为好。
Q:如何查询“不想毕业”同学的同班同学?
- 先查询出“不想毕业”同学的班级号class_id
- 再查询哪些同学的class_id与它相同。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7e7f3c6262a842eeb5f8be8bbdd7766d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARW1wZXJvcjEw,size_18,color_FFFFFF,t_70,g_se,x_16)
这是两个简单的查询语句,那么我们把它结合起来就是子查询。
![](https://img-blog.csdnimg.cn/236d626e43bd430cb8810a0ccc953707.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARW1wZXJvcjEw,size_19,color_FFFFFF,t_70,g_se,x_16)
先执行第二行的查询语句,将这个查询结果,作为外层查询的条件。子查询只返回一条记录,所以最外层查询使用=比较即可。
那么问题来了,如果我想查询的记录不止一条呢