SQL左连接和右连接原理及实例解析
两张表,A表中的记录B表中不一定有。
- 左连接:关注左边,右边没有就为空。
- 右连接:关注右边,左边没有就为空。
- 内连接:返回交集
例如:
student表s
id | name | age | class_id |
---|---|---|---|
1 | yang | 22 | 1 |
2 | su | 20 | 1 |
3 | fan | 20 | 2 |
4 | li | 30 | 2 |
5 | luo | 22 |
class表c
id | name | total |
---|---|---|
1 | 大一 | 30 |
2 | 大二 | 15 |
3 | 大三 | 40 |
在上面的表中,s表中的5号记录在c表中是找不到数据的。
1.左连接,left join左边为主要表,次表没有对应的就显示NULL。
SELECT s.`name`,s.`class_id` FROM student s LEFT JOIN class c ON s.`class_id`=c.`class_id`
结果
name | class_id |
---|---|
yang | 1 |
su | 1 |
fan | 2 |
li | 2 |
luo | (NULL) |
2.右连接,right jion右边为主要表,次表没有对应的就显示NULL。
SELECT s.`name`,s.`class_id` FROM student s RIGHT JOIN class c ON s.`class_id`=c.`class_id`
结果
name | class_id |
---|---|
yang | 1 |
su | 1 |
fan | 2 |
li | 2 |
(NULL) | (NULL) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
MySQL中show命令方法得到表列及整个库的详细信息(精品珍藏)
MySQL中show 句法得到表列及整个库的详细信息,方便查看数据库的详细信息。2010-11-11MySQL中的case when中对于NULL值判断的坑及解决
这篇文章主要介绍了MySQL中的case when中对于NULL值判断的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12Centos7.5安装mysql5.7.24二进制包方式部署
这篇文章主要介绍了Centos7.5安装mysql5.7.24二进制包方式部署,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2018-12-12linux 安装 mysql 8.0.19 详细步骤及问题解决方法
这篇文章主要介绍了linux 安装 mysql 8.0.19 详细步骤,本文给大家列出了常见问题及解决方法,通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2020-02-02
最新评论