LEFT JOIN 后使用 ON 跟使用 ON … WHERE 的区别!
LEFT JOIN 后使用 ON: 显示主表中的所有信息以及副表中符合ON后条件的信息。
LEFT JOIN 后使用 ON 加 WHERE : 会在显示的主表所有信息与副表中符合ON后条件的记录的基础上根据WHERE后的条件对所有记录再次筛选,将符合条件的记录显示。
举例:
表user:
user_id | class |
---|---|
1 | 111 |
2 | 222 |
3 | 333 |
5 | 555 |
表class:
class | name |
---|---|
111 | 运球 |
222 | 晃人 |
333 | 投篮 |
444 | 灌篮 |
执行语句1:SELECT * FROM user a LEFT JOIN class b ON a.class = b.class_id ;
结果:
user_id | class | class_id | name |
---|---|---|---|
1 | 111 | 111 | 运球 |
2 | 222 | 222 | 晃人 |
3 | 333 | 333 | 投篮 |
5 | 555 |
执行语句2:SELECT * FROM user a LEFT JOIN class b ON a.class = b.class_id WHERE a.class = b.class_id;
结果:
user_id | class | class_id | name |
---|---|---|---|
1 | 111 | 111 | 运球 |
2 | 222 | 222 | 晃人 |
3 | 333 | 333 | 投篮 |