SQL中的7种 JOIN 操作
在 SQL 中,JOIN 操作用于将两个或多个表的数据结合起来。以下是 7 种常见的 JOIN 类型及其对应的 SQL 语法和示意图:


-
左连接 (LEFT JOIN)
SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key; -
右连接 (RIGHT JOIN)
SELECTFROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key; -
内连接 (INNER JOIN)
SELECT <select_list> FROM TableA A INNER JOIN TableB B ON A.Key = B.Key; -
左连接排除 (LEFT JOIN with IS NULL)
SELECTFROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL; -
右连接排除 (RIGHT JOIN with IS NULL)
SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL; -
完全外连接 (FULL OUTER JOIN)
SELECTFROM TableA A FULL OUTER JOIN TableB B ON A.Key = B.Key; -
完全外连接排除 (FULL OUTER JOIN with IS NULL)
SELECT <select_list> FROM TableA A FULL OUTER JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL OR B.Key IS NULL;
需要注意的是,FULL OUTER JOIN 在 MySQL 中不被直接支持,需要使用 UNION 来实现:
SELECT
FROM TableA A
LEFT JOIN TableB B
ON A.Key = B.Key
UNION
SELECT
FROM TableB B
LEFT JOIN TableA A
ON A.Key = B.Key;