sql >> Database teknologi >  >> RDS >> Sqlserver

Forespørgselsfejl med tvetydigt kolonnenavn i SQL

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



  1. mysql pivot/krydstabel-forespørgsel

  2. Returner de søgte data fra sqlite

  3. Sådan genereres drop-tabelerklæring for alle tabellerne i en database - SQL Server / T-SQL vejledning del 48

  4. heroku, postgreSQL, django, comments, tastypie:Ingen operator matcher det givne navn og argumenttype(r). Du skal muligvis tilføje eksplicitte casts