当前位置: 代码迷 >> MySQL >> Mysql 中LEFT中on与where 过滤条件差别
  详细解决方案

Mysql 中LEFT中on与where 过滤条件差别

热度:61   发布时间:2016-05-05 16:44:57.0
Mysql 中LEFT中on与where 过滤条件差异
语句1:
	SELECT a.id, b.id FROM a LEFT JOIN b    ON a.id = b.id AND a.id = 1 AND b.id = 1

语句2:
	SELECT a.id, b.id FROM a LEFT JOIN b    ON a.id = b.id where a.id = 1 AND b.id = 1


在mysql的left join中条件放在on后面和在where后面是不同的。
语句1和语句2 就是明显的列子:其中语句1中的b.id是过滤b表的信息,a.id对a表过滤无效;
语句2中b.id和a.id都生效,即where条件实在left on生效后才产生的生效条件
  相关解决方案