外链论坛

 找回密码
 立即注册
搜索
查看: 54|回复: 3

Mysql面试题:内连接、左连接、右连接的区别

[复制链接]

3004

主题

2万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96066008
发表于 2024-8-4 11:03:42 | 显示全部楼层 |阅读模式

阅读本文前,请您先点击上面的“蓝色字体”,再点击关注这般您就能够每日学习一点新知识,每日都有进步了。

内连接

结合两张表的记录,返回关联查找结果,返回的是两个表的交集部分。

关键字

INNER JOIN

左连接

左连接查找,左表的信息所有展示出来,右表只会展示符合搜索要求的信息,不足的地区记为NULL

关键字

LEFT JOIN

右连接

右连接查找,右表的信息所有展示出来,左表只会展示符合搜索要求的信息,不足的地区记为NULL

关键字

RIGHT JOIN

下面举个详细的例子,方便理解

首要创建两个新表,数据如下:

student表数据

score表数据

能够看到students表中stu_id为16048008的记录对应score表数据;

1. 当进行内连接时,系统会自动忽略两个表中对应不起来的数据:

-- 表示内连接所有数据:SELECT * FROM students st INNER JOIN score sc ON st.sid=sc.stu_id;

数据太多,只截图最末尾的:

能够看到,数据只表示到16048007,16048008的并表示,因此内连接只表示所有相关联的数据.

2. 左链接,表示关键词left左边表中的所有数据,右边表数据数据少了补NULL值,数据多了不表示;

-- 左外链接 leftSELECT * FROM students st LEFT JOIN score sc ON st.sid=sc.stu_id;

可以看到,16048008在右边score表中数据,系统用NUll补齐

SELECT * FROM score sc LEFT JOIN students st ON st.sid=sc.stu_id;

上图是咱们将students表和score表换了一下位置的运行结果,能够看出,本来右边表16048008记录,由于在左边表钟数据对应,因此被删除了,能够看出,左链接是以左边表中数据为参照,表示左边表中所有数据,右边表,只表示与左边表对应的数据,少了补NULl,多了删除;

同理,右链接是以右边为参照,左边少了补NULL,多了删除,这儿就不多说了;

以上能够得出:

内连接,表示两个表中有联系的所有数据;

左链接,以左表为参照,表示所有数据;

右链接,以右表为参照表示数据;

--- THE END ---

每日都能学点新知识,请关注咱们

回复

使用道具 举报

1

主题

826

回帖

-1

积分

限制会员

积分
-1
发表于 2024-8-20 00:52:41 | 显示全部楼层
我赞同你的看法,你的智慧让人佩服,谢谢分享。
回复

使用道具 举报

2948

主题

2万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569305
发表于 2024-10-4 18:02:37 | 显示全部楼层
我完全同意你的观点,说得太对了。
回复

使用道具 举报

3094

主题

2万

回帖

9996万

积分

论坛元老

Rank: 8Rank: 8

积分
99968785
发表于 2024-10-8 01:18:36 | 显示全部楼层
楼主果然英明!不得不赞美你一下!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-9 02:05 , Processed in 0.069985 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.