sql连接查询中on和where的区别
在连接查询中我们使用on和where都可以进行条件筛选但是二者是有区别的。
例如:
person表

city表

使用where
SELECT name, age, cityName
FROM person
LEFT JOIN city ON person.cityId = city.id
WHERE city.id > 2

写在where后面的条件是先对两个表进行左连接,然后根据条件进行筛选(筛选掉了所有city.id小于等于2的记录)。
使用on
SELECT name, age, cityName
FROM person
LEFT JOIN city
ON person.cityId = city.id
AND city.id > 2

写在on后面的条件是先对后面的表(表city)执行筛选(筛选city.id大于2,筛选后只有广州),然后再执行左连接(所以city.id小于等于2的cityName都为空)。

浙公网安备 33010602011771号