如何使用LEFT JOIN在Query中使用where子句?

时间:2012-11-07 09:30:59

标签: sql left-join where-clause

如何编写我的sql查询正确?我想在查询中使用WHERE子句,但我不知道如何正确。这是我的错误查询:

**SELECT pil.[Buy-from Vendor No_],  pil.No_, pil.Amount, pil.Quantity 
FROM dbo.[„blk“ 2011$Purch_ Inv_ Line]AS pil
WHERE pil.Type=5
LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] AS pih
ON pil.[Document No_]=pih.No_
ORDER BY pil.amount**

6 个答案:

答案 0 :(得分:1)

WHERE子句移到ORDER BY之前。

以下文档定义了SELECT语句的外观:http://msdn.microsoft.com/en-us/library/ms189499.aspx

答案 1 :(得分:1)

这是你处理左连接的方式

SELECT 
    pil.[Buy-from Vendor No_] 
  ,  pil.No_, pil.Amount
  , pil.Quantity 
FROM dbo.[UAB „Arvi cukrus“ 2011$Purch_ Inv_ Line] pil
LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] Pih ON pil.[Document No_]=pih.No_
WHERE pil.Type=5
ORDER BY pil.amount

答案 2 :(得分:1)

Where位于From子句之后。正确的查询是

   SELECT pil.[Buy-from Vendor No_],  pil.No_, pil.Amount, pil.Quantity 
    FROM dbo.[„blk“ 2011$Purch_ Inv_ Line]AS pil
    LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] AS pih
    ON pil.[Document No_]=pih.No_
    WHERE pil.Type=5
    ORDER BY pil.amount;

答案 3 :(得分:0)

将所有连接后放在哪里:

SELECT pil.[Buy-from Vendor No_],  pil.No_, pil.Amount, pil.Quantity 
FROM dbo.[„blk“ 2011$Purch_ Inv_ Line]AS pil
LEFT JOIN dbo.[„blk“ 2011$Purch_ Inv_ Header] AS pih
ON pil.[Document No_]=pih.No_
WHERE pil.Type=5
ORDER BY pil.amoun

答案 4 :(得分:0)

WHERE放在ORDER BY

之前

答案 5 :(得分:0)

WHERE子句移到FROM子句和其他表引用之后,如下所示:

SELECT 
  pil.[Buy-from Vendor No_], 
  pil.No_, 
  pil.Amount, 
  pil.Quantity 
FROM ...
...
WHERE pil.Type=5
ORDER BY pil.amount