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

SQL 面试高频:INNER JOIN vs LEFT JOIN 怎么考?

在 SQL 面试中,INNER JOIN 和 LEFT JOIN 是必考点。很多同学能写出语法,但在面试官的追问下,往往答不清楚二者的本质区别和应用场景。本文就帮你彻底理清这两个 JOIN 的考点。

一、INNER JOIN 是什么?

INNER JOIN:只返回两张表中满足匹配条件的数据。

特点:

● 如果某一方没有匹配记录,就不会出现在结果中。

● 结果集只包含“交集部分”。

举个例子:

假设有用户表和订单表,想查所有下过订单的用户,用 INNER JOIN 就能完成。

👉 面试常问:

如果某用户没有下单,是否会出现在 INNER JOIN 的结果里?

答案:不会。

二、LEFT JOIN 是什么?

LEFT JOIN:返回左表的全部数据,即使右表没有匹配记录,也会显示。右表没有匹配时,相关字段填充为 NULL。

特点:

● 保留“左表全部 + 右表匹配部分”。

● 没匹配的部分会补 NULL。

👉 面试常问:

如果想统计所有用户,即便没有订单,也要展示用户信息,应该用哪种 JOIN?

答案:LEFT JOIN。

三、INNER JOIN vs LEFT JOIN 的核心区别

1. 结果集不同

INNER JOIN:只保留两表的交集。

LEFT JOIN:保留左表所有数据,右表没有匹配时补 NULL。

2. 适用场景不同

INNER JOIN:适合查询有明确匹配关系的数据,比如“哪些用户下过订单”。

LEFT JOIN:适合做“全量统计”,比如“所有用户及其订单数”。

3. 面试陷阱

面试官可能会问:LEFT JOIN 能否替代 INNER JOIN?

答案:理论上可以(在 WHERE 条件中过滤掉右表为 NULL 的情况),但 INNER JOIN 更直观且效率更高。

四、性能对比

在多数数据库(如 MySQL)中:

INNER JOIN 通常比 LEFT JOIN 更快,因为数据量更小,只处理交集。

LEFT JOIN 可能会引入大量 NULL 值,结果集更大,查询速度慢一些。

👉 面试延伸:

为什么 INNER JOIN 更快?

答:因为优化器只处理匹配的行,避免了额外的 NULL 填充。

五、面试高频题目

1. 问:INNER JOIN 和 LEFT JOIN 的区别是什么?

答:INNER JOIN 只保留匹配的行,LEFT JOIN 保留左表全部,右表没匹配时补 NULL。

2. 问:什么时候用 INNER JOIN,什么时候用 LEFT JOIN?

答:

INNER JOIN:需要交集数据。

LEFT JOIN:需要保留左表全量数据。

3. 问:如何用 LEFT JOIN 模拟 INNER JOIN?

答:在 WHERE 子句中过滤掉右表字段为 NULL 的情况即可。

六、总结

INNER JOIN:交集查询,结果集更小,常用于匹配关系。

LEFT JOIN:保留左表数据,常用于全量统计和缺失数据分析。

面试时不仅要会写语法,更要能解释 执行结果的差异 和 适用场景。

一句话总结:

INNER JOIN 更像“筛选”,LEFT JOIN 更像“保底”。

 

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

相关文章:

  • 【51单片机】【protues仿真】基于51单片机智能路灯控制系统
  • 3d模型免费素材网站wordpress如何修改行距
  • 再探类对象——C++入门进阶
  • 公司网站如何维护wordpress去掉title前空格及keywords最后的逗号
  • 仙居谁认识做网站的广告投放平台代理
  • 智慧餐厅管理系统qq群排名优化软件官网
  • InnoDB核心限制与应对策略
  • 贵州建设厅监理协会网站前后端分离实现网站开发
  • QNX 开发环境搭建
  • Java技术栈 —— 使用MinIO进行大文件分片上传与下载
  • `modprobe`命令 与 `KVM`模块 笔记251006
  • 山东省建设监理协会网站打不开赣州招聘网最新招聘
  • 贵阳网站建设设计个人网页设计作品集分析
  • 音乐介绍网站怎么做做暧暧小视频网站
  • 公网带宽1m能建设电商网站吗wordpress新建数据库
  • C57-断言函数assert
  • 网站的制作建站人汽车业务网站开发公司
  • 详解指针2
  • 第一章 :感知机(上)
  • 做网站都要会些什么设计网站建设合同书6
  • 网站开发工程师 能做什么响应式布局的概念
  • 反激开关电源
  • 长沙网站建设外贸0基础做电商从何下手
  • vs2015做网站做民宿需要和多家网站合作吗
  • 集团型网站建设室内设计平面图简单
  • 比利时网站后缀用php做的网站前后台模板
  • 视频网站如何做微信营销长春火车站和高铁站是一个站吗
  • steamdeck 龙神Ryujinx模拟器输入控制器无效
  • 彩票网站网站建设路由器上建网站
  • 网站建设如何推广业务如何备份wordpress网页