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生效后才产生的生效条件

猜你喜欢

转载自jiandequn.iteye.com/blog/2238756