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

查询条件放在 ON 后面:

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

查询条件放在 WHERE 后面:

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

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

相关推荐
heimeiyingwang4 小时前
【架构实战】Canal数据同步:MySQL数据变更实时捕获
数据库·mysql·架构
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题 第85题】【Mysql篇】第15题:MySQL 的事务中,幻读是怎么解决的?
java·开发语言·数据库·mysql·面试
yoothey4 小时前
MySQL 索引小白面试详解
数据库·mysql
小陈的进阶之路4 小时前
MySQL 索引
数据库·mysql
IronMurphy4 小时前
MySQL拷打最后一讲!!!
mysql
無限進步D4 小时前
MySQL 子查询
数据库·mysql
骄马之死4 小时前
MyBatis SqlSession 与缓存机制详解
mysql·mybatis
之歆4 小时前
Day01_ES6+ 专业指南:从基础到实战的现代JavaScript开发(上)
javascript·mysql·es6
Yvonne爱编码5 小时前
数据库---Day10 索引
数据库·sql·mysql
流星白龙5 小时前
【MySQL高阶】8.MySQL系统库
android·mysql·adb