Vi står over for denne fejl, når vi vælger data fra mere end én tabel ved at forbinde tabeller og mindst én af de valgte kolonner (det vil også ske, når du bruger * til at vælge alle kolonner) eksisterer med samme navn i mere end én tabel (vores udvalgte/sammensluttede tabeller). I så fald skal vi angive, fra hvilken tabel vi udvælger kolonne.
Følgende er et eksempel på implementering af konceptet forklaret ovenfor
Jeg tror, at du kun har tvetydighed i InvoiceID
der findes både i InvoiceLineItems
og Invoices
Andre felter virker adskilte. Så prøv denne
Jeg erstatter bare InvoiceID med 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
Du kan bruge tablename.columnnae for alle kolonner (i udvælgelse, hvor, grupper efter og rækkefølge efter) uden at bruge noget alias. Du kan dog bruge et alias som guidet af andre svar