mysql 的查询条件放在 join on 和 Where 的区别:

查询条件放在 ON 后面:

属于"连接条件"。在连接时进行筛选,不符合条件的右表记录会被当作不存在,但左表记录依然保留。

查询条件放在 WHERE 后面:

属于"结果过滤"。连接完成后,对整个结果集进行大扫除,不符合条件的行直接整行删掉。

当你在使用 LEFT JOIN 却发现查出来的数量比预期少时,应该检查 WHERE 子句里是不是引用了右表的字段。

相关推荐
Bert.Cai1 小时前
MySQL DML简介
数据库·mysql
考虑考虑3 小时前
SQL语句中的order by可能造成时间重复
数据库·后端·mysql
SPC的存折4 小时前
D在 Alpine 容器中手动搭建 Discuz 全攻略(包含镜像一键部署脚本,可直接用)
linux·数据库·mysql·缓存
AgCl235 小时前
MYSQL-6-函数与约束-3/17
android·数据库·mysql
junqiduhang5 小时前
Win11 MySQL 8.0 安装八步走
数据库·mysql
小菜同学爱学习7 小时前
夯实基础!MySQL数据类型进阶、约束详解与报错排查
开发语言·数据库·sql·mysql
小旭95279 小时前
MySql调优详解
数据库·mysql·数据库架构
九皇叔叔9 小时前
MySQL实操指南:复制表及数据复制全解析
android·数据库·mysql
识君啊10 小时前
38 个 MySQL 索引核心问题:原理、失效场景与优化实战
数据库·mysql
爱莉希雅&&&10 小时前
MySQL MGR 组复制 完整笔记
linux·数据库·笔记·mysql·mgr·数据库同步