Nous rencontrons cette erreur lorsque nous sélectionnons des données de plusieurs tables en joignant des tables et au moins une des colonnes sélectionnées (cela arrivera également lorsque vous utilisez * pour sélectionner toutes les colonnes) existe avec le même nom dans plusieurs tables (nos tables sélectionnées/jointes). Dans ce cas, nous devons spécifier à partir de quelle table nous sélectionnons la colonne.
Ce qui suit est un exemple d'implémentation de solution du concept expliqué ci-dessus
Je pense que vous avez une ambiguïté uniquement dans InvoiceID
qui existe à la fois dans InvoiceLineItems
et Invoices
D'autres domaines semblent distincts. Alors essayez ceci
Je remplace simplement InvoiceID par 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
Vous pouvez utiliser tablename.columnnae pour toutes les colonnes (dans selection, where, group by et order by) sans utiliser d'alias. Cependant, vous pouvez utiliser un alias comme guidé par d'autres réponses