Riscontriamo questo errore quando selezioniamo i dati da più di una tabella unendo tabelle e almeno una delle colonne selezionate (succederà anche quando usi * per selezionare tutte le colonne) esiste con lo stesso nome in più tabelle (i nostri tavoli selezionati/uniti). In tal caso dobbiamo specificare da quale tabella stiamo selezionando la colonna.
Quello che segue è un esempio di implementazione della soluzione del concetto spiegato sopra
Penso che tu abbia ambiguità solo in InvoiceID
che esiste sia in InvoiceLineItems
e Invoices
Altri campi sembrano distinti. Quindi prova questo
Sostituisco semplicemente InvoiceID con Fatture.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
Puoi utilizzare nometabella.colonnae per tutte le colonne (in selezione,dove,raggruppa per e ordina per) senza utilizzare alcun alias. Tuttavia puoi usare un alias come guidato da altre risposte