Dieser Fehler tritt auf, wenn wir Daten aus mehr als einer Tabelle auswählen durch Verbinden von Tabellen und mindestens einer der ausgewählten Spalten (es passiert auch, wenn Sie * verwenden, um alle Spalten auszuwählen) mit demselben Namen in mehr als einer Tabelle vorhanden sind (unsere ausgewählten/verbundenen Tische). In diesem Fall müssen wir angeben, aus welcher Tabelle wir die Spalte auswählen.
Im Folgenden finden Sie eine beispielhafte Lösungsimplementierung des oben erläuterten Konzepts
Ich denke, Sie haben nur in InvoiceID
Mehrdeutigkeiten die sowohl in InvoiceLineItems
existiert und Invoices
Andere Felder scheinen unterschiedlich zu sein. Versuchen Sie es also mit diesem
Ich ersetze einfach Rechnungs-ID durch Rechnungen.Rechnungs-ID
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
Sie können tablename.columnnae für alle Spalten (in selection, where, group by und order by) verwenden, ohne einen Alias zu verwenden. Sie können jedoch einen Alias verwenden, wenn Sie sich von anderen Antworten leiten lassen