SQL LEFT JOIN 关键字

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

演示数据库
在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 “Websites” 表的数据:

±—±-------------±--------------------------±------±--------+
| id | name | url | alexa | country |
±—±-------------±--------------------------±------±--------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND |
±—±--------------±--------------------------±------±--------+
下面是 “access_log” 网站访问记录表的数据:

mysql> SELECT * FROM access_log;
±----±--------±------±-----------+
| aid | site_id | count | date |
±----±--------±------±-----------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016-05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
±----±--------±------±-----------+
9 rows in set (0.00 sec)
SQL LEFT JOIN 实例
下面的 SQL 语句将返回所有网站及他们的访问量(如果有的话)。

以下实例中我们把 Websites 作为左表,access_log 作为右表:

实例
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;
执行以上 SQL 输出结果如下:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL中,LEFT JOIN是一种联接操作,它返回左表中的所有记录以及右表中与左表中的记录关联的记录。具体来说,LEFT JOIN会根据指定的条件将两个表中的记录进行匹配,并将匹配成功的记录组合在一起。 例如,如果我们有两个表table_a和table_b,它们通过id字段进行关联。使用LEFT JOIN语句"SELECT * FROM table_a LEFT JOIN table_b ON table_a.id=table_b.id;",我们可以获得一个结果集,其中包含了table_a中的所有记录,以及与之关联的table_b中的记录。如果在table_b中没有与table_a中的记录匹配的记录,那么结果集中对应的字段将显示NULL值。 需要注意的是,LEFT JOIN关键字的使用顺序是"左表 LEFT JOIN 右表",即将左表作为基础表,右表作为连接表。 这种LEFT JOIN操作在处理包含关联数据的查询时非常有用,可以帮助我们获取需要的数据,并且保留左表中的所有记录,即使在右表中没有匹配的记录。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)](https://blog.csdn.net/m0_46628605/article/details/119728797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值