SQL FULL JOIN
FULL OUTER JOIN 返回两表全部行,任一侧无匹配的列补 NULL;MySQL 不支持,可用 UNION 模拟。
Key PointsSQL,FULL JOIN,全连接,UNION 模拟
讲解
FULL OUTER JOIN 返回两表全部行,任一侧无匹配的列补 NULL;MySQL 不支持,可用 UNION 模拟。
示例
SQL
-- 标准 SQL / SQL Server / PostgreSQL
SELECT w.name, a.count
FROM Websites w
FULL OUTER JOIN access_log a
ON w.id = a.site_id;
-- MySQL 用 UNION 模拟
SELECT w.name, a.count FROM Websites w LEFT JOIN access_log a ON w.id = a.site_id
UNION
SELECT w.name, a.count FROM Websites w RIGHT JOIN access_log a ON w.id = a.site_id;Output
name count
--------- -----
微博 230
淘宝 100
菜鸟教程 45
Google NULL
Facebook NULL讲解
FULL OUTER JOIN 返回两表全部行,任一侧无匹配的列补 NULL;MySQL 不支持,可用 UNION 模拟。
示例
SQL
-- 标准 SQL / SQL Server / PostgreSQL
SELECT w.name, a.count
FROM Websites w
FULL OUTER JOIN access_log a
ON w.id = a.site_id;
-- MySQL 用 UNION 模拟
SELECT w.name, a.count FROM Websites w LEFT JOIN access_log a ON w.id = a.site_id
UNION
SELECT w.name, a.count FROM Websites w RIGHT JOIN access_log a ON w.id = a.site_id;Output
name count
--------- -----
微博 230
淘宝 100
菜鸟教程 45
Google NULL
Facebook NULL