联合查询和合并查询
- 一.联合查询
- 1.内连接
- 2.外链接
- 2.1左外连接
- 2.2右外连接
- 3.自连接
- 4.子查询
- 5.合并查询
一.联合查询
步骤
1.进行笛卡尔积
2.列出连接条件
3.根据需求再列出其他条件
4.针对列进行精简(可以使用聚合函数)
我们先搭建一个多表查询的框架
这样一个多表查询就搭建出来了,下面我们根据某些查找条件来写出相应的表.
1.内连接
我们在写多表查询的时候要严格遵守4个步骤
一. 查询许仙同学的成绩
1.进行笛卡尔积
2.连接条件
我们在表中可以发现 student_id和id可以作为连接条件
(3)根据需要补充其他条件
查询许仙的成绩,我们就要把许仙的名字突出出来
(4)根据列进行精简
二.查询所有同学的总成绩,及同学的个人信息
(1)进行笛卡尔积
(2)连接条件
(3)根据聚合函数来计算总成绩
三.查询所有同学的成绩,及同学的个人信息
查询同学信息和单科成绩,必须要有课程名,所以就涉及到了三张表,student,course,score.
(1)进行笛卡尔积
(2) 连接条件
三张表,就需要两个连接条件来进行连接,我们可以发现,score表中,有student_id和course_id,我们就可以用score表作为中间媒介来进行连接
(3)进行精简.
2.外链接
2.1左外连接
2.2右外连接
3.自连接
自己和自己连接
显示所有“计算机原理”成绩比“Java”成绩高的成绩信息
根据条件来进行筛选
选择课程序号
4.子查询
多个简单的sql合并为一个复杂的sql
查询与“不想毕业” 同学的同班同学:
5.合并查询
案例:查询id小于3,或者名字为“Java”的课程