内连接、右外连接、左外连接
-
内连接返回两个表中相等的行
inner
、inner join
。 -
外连接
outer join。
-
左外连接返回左表中的所有行和右表中匹配的行
left outer join
。 -
左连接
left join。
-
右外连接返回右表中的所有行和左表中匹配的行
right outer join
。 -
右连接
right join
。
-
-
全连接 返回两个表中的所有行,无论是否存在匹配的行。如果在其中一个表中没有匹配的行,对应的结果集中会包含 NULL 值。
full join
、union
select * from a left join b on a.id = b.id union select * from a right join b on a.id = b.id
右连接、右外连接的区别:
右连接(RIGHT JOIN 或 RIGHT INNER JOIN):
-
返回右表中满足连接条件的行,以及左表中与之匹配的行。
-
如果左表中没有匹配的行,则结果集中不会包含这些行。
-
可以简写为
RIGHT JOIN
或RIGHT INNER JOIN
。SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
右外连接(RIGHT OUTER JOIN):
-
返回右表中所有的行,以及左表中与之匹配的行。
-
如果左表中没有匹配的行,则结果集中会包含 NULL 值。
-
可以简写为
RIGHT OUTER JOIN
。SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.column = table2.column;