当前位置: 首页 > news >正文

sql中left join和inner join的区别

join时mysql数据库中非常关键的连表查询手段,包括left join和inner join。

这里尝试说明left join和inner join的区别,并通过具体场景示例。

sql代码和例子,参考自网络资料。

1 left join

left join返回左表的所有记录,即使右表中没有匹配的记录。

如果右表中没有匹配,则结果为NULL。 

在左连接中,左表的所有行都会显示,左连接适用于需要保留左表所有数据的情况。

2 inner join

inner join只返回两个表中匹配的记录,不包括不匹配的记录。 

在内连接中,只有符合条件的行会显示,内连接适用于只关心匹配数据的情况。 


 

3 场景示例

以下是示例场景,有 5 个客户,但只有 4 笔订单。赵六和钱七还没下过订单。

客户表(customers):

customer_id | name
1           | 张三
2           | 李四
3           | 王五
4           | 赵六
5           | 钱七  ← 还没下过订单!


订单表(orders):

order_id | customer_id | amount
101      | 1           | 250.00
102      | 2           | 180.00
103      | 1           | 420.00
104      | 3           | 95.00

3.1 left join查询

查询所有客户的信息以及其订单量,包括实际没有下单的客户。

sql示例如下

SELECT c.customer_id,[c.name](http://c.name),COUNT(o.order_id) as order_count
FROM customers c
LEFT JOIN orders oON c.customer_id = o.customer_id
GROUP BY c.customer_id, [c.name](http://c.name);

查询结果如下所示,赵六和钱七还没下过订单,但也被统计在内。

customer_id | name  | order_count
1           | 张三  | 2
2           | 李四  | 1
3           | 王五  | 1
4           | 赵六  | 0  ← 没有下订单
5           | 钱七  | 0  ← 没有下订单

3.2 inner join查询

查询所有客户及其订单数量,要求必须要有实际订单。

sql示例如下

SELECT c.customer_id,[c.name](http://c.name),COUNT(o.order_id) as order_count
FROM customers c
INNER JOIN orders oON c.customer_id = o.customer_id
GROUP BY c.customer_id, [c.name](http://c.name);

查询结果,只显示 3 个客户,而不是 5 个,因为赵六和钱七还没下过订单。

customer_id | name  | order_count
1           | 张三  | 2
2           | 李四  | 1
3           | 王五  | 1

reference

---

SQL JOIN详解:LEFT JOIN vs INNER JOIN避免数据丢失(附实战案例)

https://zhuanlan.zhihu.com/p/1967303095915638900

http://www.dtcms.com/a/602302.html

相关文章:

  • 最小栈--leetcode
  • 做网站的学什么代码wordpress 主题末班
  • 网站建设二公司psd转wordpress主题
  • 线性代数 - 3 阶方阵的行列式 可视化
  • 营销型网站首页模板做纺织生意用什么网站好
  • flink部署选型方案以及flink-on-k8s部署
  • 3GPP标准各个版本的介绍和演变
  • 网站设置的参数江西建设厅网站查询施工员
  • 程序员个人网站开发模板之家网页模板
  • 彭阳网站建设多少钱做网站怎么发展客户
  • 做软件项目的网站百度制作企业网站多少钱
  • 大型电商网站建设武平县网站建设
  • seo01网站营销推广软件有哪些
  • 建设银行网站信息补充网站建设app端
  • 结合 Leetcode 题探究KMP算法
  • Vue3 VueUse(组合式 API 工具库)
  • seo推广专员工作好做吗绍兴seo管理
  • 嵌入式开发中的 Git CI/CD
  • 【ZeroRange WebRTC】STUN srflx 与 ICE 连通性检查
  • 网站开发公司怎么接单外贸销售怎么找客户
  • vps如何设置网站权限曲阜市古建设计院网站
  • 公司做网站一定要钱吗旅游网站建设
  • 从零到迁移:Docker Desktop + WSL2 完整安装与迁移教程(2025-11-12实测版)
  • 制作网站的程序语言wordpress收不到
  • python Anaconda3 5.3.1(version:4.5.11)下载安装教程
  • 现在网站建设用什么语言最便宜的免费建站
  • ubuntu所有版本镜像下载链接
  • LLMs之Tool:social-analyzer的简介、安装和使用方法、案例应用之详细攻略
  • 力扣面试150题打卡
  • Celery高级配置与队列管理实战