日期:2014-05-19  浏览次数:20593 次

inner join 后面的and 条件与直接写在where里有和区别?
inner   join   A列=B列   and   C列=‘X’
和把C列写在Where里面
这两种写法有什么区别?

------解决方案--------------------
inner join A列=B列 and C列=‘X’ C列是作為關聯的條件
而放在where 裡面 則先是 inner join A列=B列 成一個新的試圖表,然後根據 C列=‘X’再來取數據
------解决方案--------------------
学习
------解决方案--------------------
能放到WHERE的条件千万别放到ON里去.
------解决方案--------------------
内连接可能不会有问题,外连接就有问题了!
------解决方案--------------------
是不是多次连接的时候用JION效率高,而不是 WHERE 呢?
------解决方案--------------------
应该是能放在on里的条件,尽量不要放在where里,因为当inner join A列=B列可能得到很大的表,此表中包含有在where里过滤掉的数据:C列=‘X’,所以效率会很低。
------解决方案--------------------
学习中
------解决方案--------------------
区别很大,可能造成所需要的结果不准确
1.inner join A列=B列 and C列=‘X’ 
此时的C列将参与两个数据集的关联
2.和把C列写在Where里面 ,此时的C列仅做为条件判断

3.如果c列在两数据集的关联中起重要的作用,则应该使用前者;
另外使用1比较2而言,产生的效率也更高些