MySQL链接和多表查询小结

2020-04-08  本文已影响0人  MichaelDing

基本知识点:

左连接:如果左表的某行在右表没有对应的行,则右表部分为空 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


DC834C276F866A3CF924F5B6D68CAD5C.png

课程表:Course


44065445E81C35FAAC50204B16956412.png
学生课程表:Student_Course
4A5BDA303D3B99C72F9DCE43A8359598.png
sql执行结果:
21F68EE39B3BAB95344BCC246EF0C539.png
上一篇 下一篇

猜你喜欢

热点阅读