我在此查询(InvoiceID)中收到了一个不明确的列名称错误.我无法弄清楚为什么.它们似乎都正确连接,为什么管理工作室不知道显示VendorID?任何帮助将不胜感激.
查询:
SELECT
VendorName, InvoiceID, InvoiceSequence, InvoiceLineItemAmount
FROM Vendors
JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID)
JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID)
WHERE
Invoices.InvoiceID IN
(SELECT InvoiceSequence
FROM InvoiceLineItems
WHERE InvoiceSequence > 1)
ORDER BY
VendorName, InvoiceID, InvoiceSequence, InvoiceLineItemAmount
Run Code Online (Sandbox Code Playgroud)
Sam*_*ami 43
我认为你只在InvoiceID中有歧义.其他领域似乎不同.所以试试吧
我只需用Invoices.InvoiceID替换InvoiceID
SELECT
VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
FROM Vendors
JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID)
JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID)
WHERE
Invoices.InvoiceID IN
(SELECT InvoiceSequence
FROM InvoiceLineItems
WHERE InvoiceSequence > 1)
ORDER BY
VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
Run Code Online (Sandbox Code Playgroud)
您可以对所有列使用tablename.columnnae(在选择,where,group by和order by中),而不使用任何别名.但是,您可以在其他答案的指导下使用别名
你有一个列InvoiceID在Invoices表中,并在InvoiceLineItems表中.查询执行引擎无法知道您想要返回哪一个.
添加表别名将有助于:
SELECT V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
FROM Vendors V
JOIN Invoices I ON (...)
JOIN InvoiceLineItems IL ON (...)
WHERE ...
ORDER BY V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
208773 次 |
| 最近记录: |