当前位置: 代码迷 >> Sql Server >> inner join 后面的and 条件与直接写在where里有和区别?该怎么处理
  详细解决方案

inner join 后面的and 条件与直接写在where里有和区别?该怎么处理

热度:42   发布时间:2016-04-27 20:10:05.0
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而言,产生的效率也更高些
  相关解决方案