VIPSQL/通用优化

LEFT JOIN 后在 WHERE 里过滤右表,为什么会变成 INNER JOIN

先抓住题目的核心考点,再把答案拆成可复述的面试表达。

40 次浏览2026/8/24
先下定义一句话说清它是什么,面试官先听到结论。
再讲机制拆出关键流程、边界条件和常见坑位。
最后落场景结合生产经验,说出什么时候用、怎么权衡。

题目描述

请回答:LEFT JOIN 后在 WHERE 里过滤右表,为什么会变成 INNER JOIN

这是 SQL 面试里很经典的一道“看起来会写,实际容易写错”的题。很多人背过一句口诀:LEFT JOIN 后不能在 WHERE 里写右表条件,否则会变成 INNER JOIN。 这句话能提醒你避坑,但并不严谨。

面试官真正想听的不是口诀,而是:ON 和 WHERE 分别在哪一步生效?LEFT JOIN 生成的 NULL 补齐行为什么会被过滤?什么条件会拒绝 NULL,什么条件不会?如果既要保留左表全部记录,又要限制右表数据,SQL 应该怎么写?

参考答案

评论

登录 后参与评论

加载中...