join中on和where的区别

在这里我想用mysql为例来说下JOIN中的一些知识:

1. — 
在此我创建了两张表brand和car:

左连接显示左表的所有信息:

2. —

当测试到上面这两条sql时我感动很意外,他们的结果居然是一样的,但a.brandid>1执行的结果明显不是我所想要的,且数据有误。
我个人认为解释这个只能说这是mysql的一种执行机制,他把条件都转化到b表上了。

3. —

看到这里时应该可以明白where和on的区别了:
ON后面的条件是在连接时进行的判断,而WHERE后面的条件是在执行的结果集中进行的判断。

原文地址:https://www.cnblogs.com/lixin890808/p/2993748.html