数据库内连接和外连接的区别(什么是内连接和外连接)

在 SQL 中,连接(JOIN)是将两个或多个表根据它们之间的关联条件组合在一起的操作。

连接可以分为内连接(INNER JOIN)和外连接(OUTER JOIN)。

外连接又可以进一步细分为左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。

这些连接类型的主要区别在于它们处理不匹配记录的方式。

图片[1]-数据库内连接和外连接的区别(什么是内连接和外连接)-不念博客

内连接(INNER JOIN)

内连接只返回两个表中关联条件匹配的记录。如果某个表中的记录在另一个表中没有匹配的记录,这些记录将不会出现在最终结果中。

SELECT A.id, A.name, B.address
FROM table_A A
INNER JOIN table_B B ON A.id = B.id;

左连接(LEFT JOIN)

左连接返回左表中的所有记录,以及右表中与左表匹配的记录。如果左表中的某条记录在右表中没有匹配的记录,那么结果中右表的字段将显示为 NULL。

SELECT A.id, A.name, B.address
FROM table_A A
LEFT JOIN table_B B ON A.id = B.id;

右连接(RIGHT JOIN)

右连接返回右表中的所有记录,以及左表中与右表匹配的记录。如果右表中的某条记录在左表中没有匹配的记录,那么结果中左表的字段将显示为 NULL。

SELECT A.id, A.name, B.address
FROM table_A A
RIGHT JOIN table_B B ON A.id = B.id;

全连接(FULL JOIN)

全连接返回左表和右表中的所有记录。如果左表中的某条记录在右表中没有匹配的记录,那么结果中右表的字段将显示为 NULL。反之,如果右表中的某条记录在左表中没有匹配的记录,那么结果中左表的字段将显示为 NULL。

SELECT A.id, A.name, B.address
FROM table_A A
FULL JOIN table_B B ON A.id = B.id;

总结

  • 内连接只返回匹配的记录;
  • 左连接返回左表的所有记录,以及右表中匹配的记录;
  • 右连接返回右表的所有记录,以及左表中匹配的记录;
  • 全连接返回左表和右表的所有记录,并用 NULL 填充不匹配的记录。
© 版权声明
THE END