mysql内连接和外连接有什么区别

文 / @WordPress主题

MySQL是一种关系型数据库,数据处理方式是以表格的形式存储数据。表格之间的关联问题需要用到连接(join),MySQL中有内连接(inner join)和外连接(outer join)两种方式,它们的区别在于不匹配记录的处理方式不同。

内连接(inner join)是指取出连接表中匹配到的数据,没有匹配到的不保留,可以写成如下语句:

SELECT * FROM users INNER JOIN topics ON users.id = topics.user_id;

该语句会返回users表和topics表中user_id字段匹配的所有记录,不匹配的记录会被忽略。

外连接(outer join)是指取出连接表中匹配到的数据和未匹配到的数据,对于未匹配到的数据,值为NULL,外连接分为左外连接和右外连接两种。

左外连接(left outer join)以左边的表为主表,右边表中没有匹配到的记录会变成NULL,可以写成如下语句:

SELECT * FROM users LEFT JOIN topics ON users.id = topics.user_id;

该语句会返回users表中所有记录和topics表中匹配到的记录,对于未匹配到的topics表记录,都会被返回并以NULL代替。

右外连接(right outer join)以右边的表为主表,与左外连接的区别在于以右边表的记录为主,同样没匹配到的记录会被NULL代替,可以写成如下语句:

SELECT * FROM users RIGHT JOIN topics ON users.id = topics.user_id;

本文使用的是MySQL 8版本,在Windows 7系统的Dell G3电脑中运行,在表格查询中使用了表格别名和连接语句简写,因此查询语句可能与其他版本和操作系统有所不同。

以上就是MySQL内连接和外连接的区别,希望对大家学习MySQL有所帮助。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。