内连接和左连接的区别

知识问答 2025-09-04 12:07:52 来源:互联网

内连接(Inner Join)和左连接(Left Join)是关系型数据库中两种常用的表连接操作,它们的主要区别在于返回结果集的方式和包含的记录。

1、返回结果集的方式:

内连接(Inner Join):只返回两个表中满足连接条件(即具有相同键值的记录)的组合,如果某个表中的某行在另一个表中没有匹配的行,那么这一行将不会出现在结果集中。

左连接(Left Join):返回左表中的所有记录,以及右表中满足连接条件的记录,如果右表中没有匹配的记录,则用 NULL 填充。

2、包含的记录:

内连接(Inner Join):只包含两个表中满足连接条件的记录,如果某个表中的某行在另一个表中没有匹配的行,那么这一行将不会出现在结果集中。

左连接(Left Join):包含左表中的所有记录,以及右表中满足连接条件的记录,如果右表中没有匹配的记录,则用 NULL 填充。

举例说明:

假设有两个表 A 和 B:

A 表:id(主键),name

B 表:id(外键,与 A 表的 id 对应),age

使用内连接查询:

select A.id, A.name, B.ageFROM AINNER JOIN B ON A.id = B.id;

结果集将只包含 A 表和 B 表中 id 相同的记录。

使用左连接查询:

select A.id, A.name, B.ageFROM ALEFT JOIN B ON A.id = B.id;

结果集将包含 A 表的所有记录,以及 B 表中 id 相同的记录,B 表中没有匹配的记录,则 B.age 为 NULL。