2017-02-05 77 views
2

我剛剛在SQL Server 2016中有一個查詢示例:編寫SQL代碼,它將顯示錶INVOICE中的值InvoiceNumber,其中包含值.............關於「模糊列名」的錯誤

我需要連接3個表格。這是我的代碼:

SELECT 
    InvoiceNumber 
FROM 
    INVOICE AS I 
INNER JOIN 
    LINE_ITEM AS LI ON (I.InvoiceNumber = LI.InvoiceNumber) 
INNER JOIN 
    PRODUCT AS P ON (LI.ProductNumber = P.ProductNumber) 
WHERE 
    Description = 'Heather Sweeney Seminar Live in Dakkas on 25-OCT-09 - Video' 

和驗證碼總是導致一個錯誤:

不明確的列名InvoiceNumber

上的SELECT查詢WHERE條款

+2

指定要選擇的列,例如'I.InvoiceNumber'。 – jarlh

+0

請製作更具體的標題。 – buhtz

回答

2

始終符合查詢中的所有列的名字,尤其是如果它有不止一個表:

SELECT I.InvoiceNumber 
FROM INVOICE AS I INNER JOIN 
    LINE_ITEM AS LI 
    ON I.InvoiceNumber = LI.InvoiceNumber INNER JOIN 
    PRODUCT P 
    ON LI.ProductNumber = P.ProductNumber 
WHERE P.Description = 'Heather Sweeney Seminar Live in Dakkas on 25-OCT-09 - Video' 

如果你陷入這樣的習慣,你根本不會曾經有這樣的錯誤。

1

如果2個表具有相同的列,那麼您必須在查詢中告訴您要使用哪個列。通過在其前面添加表格名稱來實現這一點。

SELECT I.InvoiceNumber FROM INVOICE AS I ... 
+0

好吧,它工作感謝你 – Bopinko