这两种方法都可以,那区别在哪里呢?哪一个更好?
这两个效果是一样的,只是当初语法有点区别,数据库最终都会优化成同样的查询方式
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
个人理解没有更好,用在适合的地方都好
第一个条件必须是两个表都有数据并且对应 ,第二就随意了
连个是一样一样的 内连接 其实就是那样 第一个是罪原始的笛卡尔积
第一个语句相当于 FROM Persons Cross Join Orders Where Persons.Id_P = Orders.Id_P
如果两个表的数据行都很多的话,第二的语句的执行效率应该会更高更快,虽然最后返回结果是一样的。所以推荐使用第二种。