| 操作 | 描述 |
|---|---|
| INNER JOIN | 如果表中至少有一个匹配,就返回行 |
| LEFT JOIN | 会从左表返回所有的值,即使右表中没有匹配 |
| right JOIN | 会从右表返回所有的值,即使左表中没有匹配 |
[
](https://www.yuque.com/u12234643/srf92e/hpfww6?inner=vWjsT)
内连接(inner join)
把两个表相匹配的全部展示
使用内连接,查询年级表,学生表,成绩表,科目表
1方式一:SELECTst.studentno,st.`studentname`,r.`studentresult`,g.`gradeid`,g.`gradename`,su.`subjectno`,su.`subjectname`FROM`grade` gINNER JOIN `student` st ON st.gradeid = g.gradeidINNER JOIN `result` r ON r.studentno = st.studentnoINNER JOIN `subject` su ON su.subjectno = r.subjectno;2 方式二:SELECTst.studentno,st.`studentname`,r.`studentresult`,g.`gradeid`,g.`gradename`,su.`subjectno`,su.`subjectname`FROM`grade` gINNER JOIN `subject` su ON su.gradeid = g.gradeidINNER JOIN `student` st ON st.gradeid = su.gradeidINNER JOIN `result` r ON r.studentno = st.studentno;
左连接
是从左表查询信息并全部展示,即使右表里没有
使用左连接,查询学生的学号、名字、年级
SELECT
studentno,
studentname,
gradename
FROM -- from后左表
student s
LEFT JOIN grade g ON s.gradeid = g.gradeid; -- join后右表
右连接( right jon)
是从右表查询信息并全部展示,即使左表里没有
使用右连接,查询学生的学号、名字、年级
SELECT
studentno,
studentname,
gradename
FROM -- from后左表
student s
right JOIN grade g ON s.gradeid = g.gradeid; -- join后右表
