图片精华版
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/7a73d97c37a54acfaf82263df464be19.png?x-oss-process=image/resize,w_1400/format,webp)
文字解释版
1. 需要准备好两个table:subject(学科表)和 student_score(学生成绩表)
通过学生成绩表的subject_id字段(学科ID)和学科表的id字段(主键ID)进行关联
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/668a63d9096e45d9ade7e94989254427.png?x-oss-process=image/resize,w_1400/format,webp)
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/9db53d36e2c44409823687a5d97a636a.png?x-oss-process=image/resize,w_1400/format,webp)
2. 分别填充数据
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/2b990bc3d1c24199b9bfa20d096e0ca2.png?x-oss-process=image/resize,w_1400/format,webp)
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/47626ab8b1b748078fcaf9fc39fc6bc3.png?x-oss-process=image/resize,w_1400/format,webp)
3. inner join
语句:select score.student_name,score.score,subject.name,subject.teacher from student_score as score inner join subject on score.subject_id = subject.id;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/105f44d4dec945368641b61397d0068a.png?x-oss-process=image/resize,w_1400/format,webp)
4. left join (共有+右表不匹配补NULL)
语句:select score.student_name,score.score,subject.name,subject.teacher from student_score as score left join subject on score.subject_id = subject.id;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/867016ed9ddb445fb2d6526885dc88c7.png?x-oss-process=image/resize,w_1400/format,webp)
5. left join (左表独有)
语句:select score.student_name,score.score,subject.name,subject.teacher from student_score as score left join subject on score.subject_id = subject.id where subject.id is null;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/078c18df49dc43749382e52abfc33688.png?x-oss-process=image/resize,w_1400/format,webp)
6. right join (共有+左表不匹配补NULL)
语句:select score.student_name,score.score,subject.name,subject.teacher from student_score as score right join subject on score.subject_id = subject.id;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/3d821b0dd65740fc80b8d55163a8b174.png?x-oss-process=image/resize,w_1400/format,webp)
7. right join (右表独有)
语句:select score.student_name,score.score,subject.name,subject.teacher from student_score as score right join subject on score.subject_id = subject.id where score.id is null;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/51fd7d0632d640f1af9e97811dfb5894.png?x-oss-process=image/resize,w_1400/format,webp)
8. union (左右表合并并去重)
语句:
select score.student_name,score.score,subject.name,subject.teacher from student_score as score left join subject on score.subject_id = subject.id
union
select score.student_name,score.score,subject.name,subject.teacher from student_score as score right join subject on score.subject_id = subject.id;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/f1dec0d440ab4cec992e765a900b01b3.png?x-oss-process=image/resize,w_1400/format,webp)
9. union (左右表独有)
语句:
select score.student_name,score.score,subject.name,subject.teacher from student_score as score left join subject on score.subject_id = subject.id where subject.id is null
union
select score.student_name,score.score,subject.name,subject.teacher from student_score as score right join subject on score.subject_id = subject.id where score.id is null;
![一张图搞定七种JOIN关系 一张图搞定七种JOIN关系](https://ucc.alicdn.com/5fuc75kckudr2/developer-article741315/20241025/7fe4e53bc354459c86bc274a9251794e.png?x-oss-process=image/resize,w_1400/format,webp)