内连接与外连接区别

2022-10-10 12:16:31

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。

右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。

全外连接:左外连接 +右外连接。

我们把tableA看作左表,把tableB看成右表,下面来用图表示一下

                      INNER JOIN                                                                      LEFT OUTER JOIN

                     RIGHT OUTER JOIN                                                            FULL OUTER JOIN

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
INNER JOIN classes c
ON s.class_id = c.id;

                                                        内连接

SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
FROM students s
OUTER JOIN classes c
ON s.class_id=c.id

                                                          外连接

和INNER JOIN(内连接)相比,RIGHT OUTER JOIN(外连接)多了一行,多出来的一行是“四班”,但是,学生相关的列如namegenderscore都为NULL。因为根据ON条件s.class_id = c.idclasses表的id=4的行正是“四班”,但是,students表中并不存在class_id=4的行。

  • 作者:齐天佑
  • 原文链接:https://blog.csdn.net/xyzyhs/article/details/98623153
    更新时间:2022-10-10 12:16:31