问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据库四种JOIN联合查询类型详解,秒懂数据库查询

创作时间:
作者:
@小白创作中心

数据库四种JOIN联合查询类型详解,秒懂数据库查询

引用
CSDN
1.
https://m.blog.csdn.net/wkj001/article/details/144900699

数据库四种JOIN联合查询类型详解,秒懂数据库查询

1. 内连接(Inner Join)

内连接返回两个表中都有匹配关系的数据。例如,在用户表和订单表中,只有那些在两张表中都存在的user_id才会出现在查询结果中。比如,user_id为123和124的记录会被返回,而user_id为125的记录因为在订单表中没有匹配到对应的order_id,所以不会出现在结果中。内连接的语法是:

SELECT * FROM user_table a INNER JOIN order_table b ON a.user_id = b.user_id;

2. 左连接(Left Join)

左连接会返回左表中的所有记录,即使在右表中没有匹配到对应的值。比如在用户表和订单表的连接中,即便用户id为125在订单表中没有对应的记录,它仍然会被包含在结果中,订单id的值则显示为null。左连接的语法是:

SELECT * FROM user_table a LEFT JOIN order_table b ON a.user_id = b.user_id;

这种类型的JOIN适用于需要保留左表所有数据,同时查询出右表可能存在的匹配记录的场景。

3. 右连接(Right Join)

右连接与左连接相反,会返回右表中的所有记录,即便左表中没有匹配的值。在图中,user_id为125虽然在用户表中没有记录,但因为它在订单表中存在,依旧会被显示,用户的名称为null。其语法为:

SELECT * FROM user_table a RIGHT JOIN order_table b ON a.user_id = b.user_id;

4. 全外连接(Full Outer Join)

全外连接会返回两个表中所有的记录,不论是否有匹配的值。如果某个表中有对应的数据,但在另一个表中没有匹配到,该字段将显示为null。全外连接的语法为:

SELECT * FROM user_table a FULL OUTER JOIN order_table b ON a.user_id = b.user_id;

这种类型的JOIN适用于你想要查看所有可能组合的情况,包括不匹配的记录。

关键是下面的图片,更直观,有点数学 子集,交集,全集的概念

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号