SQL--子查询
什么是子查询
子查询:顾名思义,在一个查询中,有另外一个查询,这个查询就叫做,主查询的子查询。
【把一个查询的结果,在另一个查询中使用就叫子查询。(将一个查询语句,作为一个结果集,供其他SQL语句使用)】
--需求:找出所有‘软件11108班’的学生信息。
分析:在学生表中,我们没有存,班级名称是“软件1108”班的信息,我们存的是,班级的ID。
所以第一步:我们先从班级表中,找出‘软件1108班’的班级ID,
然后第二步,根据班级ID,找出对应的学生信息;
SELECT CourseID FROM dbo.Class WHERE CourseName='软件1108'
SELECT * FROM dbo.Student WHERE Student_CourseID=(SELECT CourseID FROM dbo.Class WHERE CourseName='软件1108')
需求:找出所有班级名称是软件1103班以后的学生信息。
分析:先找出所有班级是软件1103班,以后的班级信息,然后根据这些班级信息找出满足条件的学生信息。
第一步:找出班级是软件1103班的班级信息:
SELECT CourseID FROM dbo.Class WHERE CourseName='软件1103'
第二步:找出所有大于软件1103班的班级ID【1103班以后的】
SELECT * FROM dbo.Class WHERE CourseID>(SELECT CourseID FROM dbo.Class WHERE CourseName='软件1103')
第三步:找出所有班级是软件1103班以后的学生信息
SELECT * FROM dbo.Student WHERE Student_CourseID IN(SELECT CourseID FROM dbo.Class WHERE CourseID>(SELECT CourseID FROM dbo.Class WHERE CourseName='软件1103'))
这里用到了两个子查询。
每天学一点,每天积累一天,进步就不止一点点!PS:好记性不如烂笔头,学会总结,学会思考~~~
----要飞翔,必须靠自己!