SQL LEFT JOIN 关键字

SQL LEFT JOIN 关键字 #

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

SQL LEFT JOIN 语法 #

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

或:

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

注释:在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。

SQL LEFT JOIN 实例 #

下面的 SQL 语句将返回所有网站及他们的访问量(如果有的话)。

以下实例中我们把 domains 作为左表,logs 作为右表:

MariaDB [learnsql]> select domains.domainname,logs.google from domains left join logs on domains.id=logs.id;
+---------------+--------+
| domainname    | google |
+---------------+--------+
| getos.org     | 001864 |
| dotbbq.com    | 002927 |
| lyq.wiki      | 002543 |
| les.moe       | 001166 |
| regex.in      | 000945 |
| blbl.dev      | 000919 |
| raspi.in      | 001532 |
| pornie.in     | 002552 |
| aosp.me       | 001724 |
| bailuyuan.org | 000775 |
| linuxuc.com   | 002483 |
| ustv.xyz      | 001616 |
| unixetc.com   | 001467 |
| ciux.org      | 001394 |
| avlist.top    | 002042 |
| suopo.net     | 001531 |
| ltecn.com     | 002466 |
| pornie.top    | 002561 |
| zjq.xyz       | 002880 |
| alair.cn      | 001698 |
| ymqd.net      | 002501 |
| nasplus.cn    |   NULL |
| manjushri.cn  |   NULL |
| pushto.cn     |   NULL |
| gfwlist.cn    |   NULL |
| byhzg.cn      |   NULL |
| mua.wiki      |   NULL |
+---------------+--------+
27 rows in set (0.002 sec)

注意最后六行没有匹配到内容,显示为NULL

注释:LEFT JOIN 关键字从左表(domains)返回所有的行,即使右表(logs)中没有匹配。