内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。
左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。
右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。
全外连接:左外连接 +右外连接。
我们把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(外连接)多了一行,多出来的一行是“四班”,但是,学生相关的列如name、gender、score都为NULL。因为根据ON条件s.class_id = c.id,classes表的id=4的行正是“四班”,但是,students表中并不存在class_id=4的行。
本文探讨了数据库连接中的内连接和外连接概念。内连接只包含符合连接条件的行,而外连接(包括左外连接、右外连接和全外连接)则保留所有表的数据行,即使某些条件不匹配。左外连接保持左表的所有行,右外连接保持右表的所有行,全外连接结合两者。通过示例,进一步解释了不同连接类型的区别。

1548

被折叠的 条评论
为什么被折叠?



