基本知识点:
左连接:如果左表的某行在右表没有对应的行,则右表部分为空 left join on
右连接:如果右表的某行在左表没有对应的行,则左表部分为空 right join on
完全连接:如果左表的某行在右表没有对应的行,则右表部分为空,如果右表的某行在左表没有对应的行,则左表部分为空,full join
内连接:从左表和右表中找出满足条件的结果集 inner join on
交叉连接:从左表和右表中找出满足笛卡尔积的所有结果集 cross join
union连接:将左表和右表的查询结果进行合并,如果左表和右表含有相同重复的使用union all
多表查询(多对多):表一Student:学生表:sno ,sname 表二:课程表Course cno,cname 表三:学生表和课程表的中间表:Student_Course:ID,sno,cno,含有学生表的课程表的主键,(注意:一个学生可以选修多个课程,一个课程可以被多个学生选修),用左连接查询学生表中学生对应的所有课程;
select s.sname,c.cname from Student_Course as sc left join Student as s on sc.sno= s.sno left join Course as c on c.cno = sc.cno
附录:学生表:Student
课程表:Course
学生课程表:Student_Course
sql执行结果: