首页 新闻 会员 周边

left join的where用左表过滤和右表过滤一样吗

0
[已关闭问题] 关闭于 2026-05-07 11:07

完全不一样。 这是一个非常关键的区别,直接决定了你的查询结果是“保留所有左表数据”还是“丢失左表数据”。
简单来说:
● WHERE 过滤左表字段:✅ 安全。符合 LEFT JOIN 的逻辑,只筛选左表的数据行。
● WHERE 过滤右表字段:❌ 危险。会直接把没匹配到的左表数据(即右表为 NULL 的行)给删掉,导致 LEFT JOIN 退化成 INNER JOIN 。

想保全左表所有数据,就用 LEFT JOIN;想让右表不匹配的数据显示为空,记得检查 ON 条件;千万别把右表的筛选条件误写在 WHERE 里,除非你真的想把 LEFT JOIN 变成 INNER JOIN。

*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1598
提问于:2026-05-07 11:06
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册