mysql内连接和外连接有什么区别
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有所帮助。

-
MySQL Workbench怎么建立数据库(附:sql语句创建数据库方法) 2023-07-20 12:22:29
-
MySQL Workbench是什么?(附:如何设置中文教程) 2023-07-20 11:42:31
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql查询怎么区分大小写 2023-05-14 07:00:02