`
zheyiw
  • 浏览: 997052 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

条件放Join里面与Where里面的区别

    博客分类:
  • SQL
阅读更多
--1, 放Join里面
SELECT   a.*, b.StorerCode AS ParentStorerCode
FROM     #tmpINV a
         LEFT JOIN Wms_Bas_Storer b
           ON b.CompanyID = @CompanyID
           AND b.StockID = @StockID
           AND a.ParentStorerID = b.StorerID


--2, 放Where里面
SELECT a.*, b.StorerCode AS ParentStorerCode
FROM   #tmpINV a LEFT JOIN Wms_Bas_Storer b ON a.ParentStorerID = b.StorerID
WHERE  b.CompanyID = @CompanyID
AND    b.StockID = @StockID

第二种写法准确来说是有语病的
将本应该放在外连接里面的条件放到Where里面会导致外连接变成了内连接
如第二种写法得出的结果将跟下面的语句一样
--2.2, 放Where里面就变成了Inner Join
SELECT   a.*, b.StorerCode AS ParentStorerCode
FROM     #tmpINV a
         Inner JOIN Wms_Bas_Storer b
           ON b.CompanyID = @CompanyID
           AND b.StockID = @StockID
           AND a.ParentStorerID = b.StorerID

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics