K této chybě dochází, když vybíráme data z více než jedné tabulky spojením tabulek a alespoň jednoho z vybraných sloupců (to se také stane, když použijete * k výběru všech sloupců) existovat se stejným názvem ve více než jedné tabulce (naše vybrané/připojené tabulky). V takovém případě musíme specifikovat, ze které tabulky vybíráme sloupec.
Následuje příklad implementace řešení výše popsaného konceptu
Myslím, že máte nejasnosti pouze v InvoiceID
který existuje jak v InvoiceLineItems
a Invoices
Ostatní pole se zdají být odlišná. Tak zkuste toto
Právě jsem nahradil InvoiceID za 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
Název_tabulky.columnnae můžete použít pro všechny sloupce (ve výběru, kde, seskupit podle a seřadit podle) bez použití jakéhokoli aliasu. Můžete však použít alias podle jiných odpovědí