複数のテーブルからデータを選択しているときにこのエラーが発生します テーブルと選択した列の少なくとも1つを結合する (*を使用してすべての列を選択した場合にも発生します)複数のテーブルに同じ名前で存在します (選択/結合されたテーブル)。その場合、どのテーブルから列を選択するかを指定する必要があります。
以下は、上記で説明した概念のソリューション実装の例です。
InvoiceID
だけにあいまいさがあると思います InvoiceLineItems
の両方に存在します およびInvoices
他のフィールドは明確に見えます。だからこれを試してみてください
InvoiceIDをInvoices.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
エイリアスを使用せずに、すべての列(selection、where、group by、order by)にtablename.columnnaeを使用できます。ただし、他の回答に基づいてエイリアスを使用することもできます