一、 LEFT JOIN

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

语法:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

MYSQL 左连接与右连接_第1张图片

举例:

下面是选自 "Websites" 表的数据:

MYSQL 左连接与右连接_第2张图片

下面是 "access_log" 网站访问记录表的数据:

MYSQL 左连接与右连接_第3张图片

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;

结果:

MYSQL 左连接与右连接_第4张图片

二、RIGHT JOIN

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

语法:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

MYSQL 左连接与右连接_第5张图片

举例

SELECT Websites.name, access_log.count, access_log.date
FROM access_log
RIGHT JOIN Websites
ON access_log.site_id=Websites.id
ORDER BY access_log.count DESC;

原文地址:http://www.runoob.com/sql/sql-join-right.html