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)中没有匹配。