MySQL left join 用法与实例
mysql left join 会取得左表的全部数据,即使右表并无完全匹配的结果
d表:
[yoon]> select * from d;
+----+----------+------+
| id | number | name |
+----+----------+------+
| 1 | 12345 | aa |
| 3 | 123456 | aa |
| 5 | 1234567 | aa |
| 7 | 12345678 | aa |
+----+----------+------+
hank表:
[yoon]> select * from hank;
+----+------+------+-----+
| id | name | cc2 | cc3 |
+----+------+------+-----+
| 1 | YOON | NULL | 0 |
| 3 | CEV | NULL | 0 |
| 4 | AAA | NULL | 0 |
| 5 | CCC | NULL | 0 |
+----+------+------+-----+
left join
[yoon]> select d.id,d.number,hank.cc3 from d left join hank on d.id = hank.id;
+----+----------+------+
| id | number | cc3 |
+----+----------+------+
| 1 | 12345 | 0 |
| 3 | 123456 | 0 |
| 5 | 1234567 | 0 |
| 7 | 12345678 | NULL |
+----+----------+------+
Using 相当于 on,如下:
[yoon]> select d.id,d.number,hank.cc3 from d left join hank using(id);
+----+----------+------+
| id | number | cc3 |
+----+----------+------+
| 1 | 12345 | 0 |
| 3 | 123456 | 0 |
| 5 | 1234567 | 0 |
| 7 | 12345678 | NULL |
+----+----------+------+
IS NULL:
在上面语句中,右表中没有对应匹配的记录,其所有列都被置为 NULL ,因此要查询这部分数据,可以通过 where is null 来查询
[yoon]> select d.id,d.number,hank.cc3 from d left join hank using(id) where hank.id is null;
+----+----------+------+
| id | number | cc3 |
+----+----------+------+
| 7 | 12345678 | NULL |
+----+----------+------+
或
[yoon]> select d.id,d.number,hank.cc3 from d left join hank on d.id = hank.id where hank.id is null;
+----+----------+------+
| id | number | cc3 |
+----+----------+------+
| 7 | 12345678 | NULL |
+----+----------+------+
说明: hank.id is null 查询的是不匹配的值, hank.id is not null 查询的就是匹配到的值,如下:
[yoon]> select d.id,d.number,hank.cc3 from d left join hank on d.id = hank.id where hank.id is not null;
+----+---------+------+
| id | number | cc3 |
+----+---------+------+
| 1 | 12345 | 0 |
| 3 | 123456 | 0 |
| 5 | 1234567 | 0 |
+----+---------+------+
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」