sql >> Databáze >  >> RDS >> Sqlserver

Chyba dotazu s nejednoznačným názvem sloupce v SQL

K této chybě dochází, když vybíráme data z více než jedné tabulky spojením tabulek a alespoň jednoho z vybraných sloupců (to se také stane, když použijete * k výběru všech sloupců) existovat se stejným názvem ve více než jedné tabulce (naše vybrané/připojené tabulky). V takovém případě musíme specifikovat, ze které tabulky vybíráme sloupec.

Následuje příklad implementace řešení výše popsaného konceptu

Myslím, že máte nejasnosti pouze v InvoiceID který existuje jak v InvoiceLineItems a Invoices Ostatní pole se zdají být odlišná. Tak zkuste toto

Právě jsem nahradil InvoiceID za 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

Název_tabulky.columnnae můžete použít pro všechny sloupce (ve výběru, kde, seskupit podle a seřadit podle) bez použití jakéhokoli aliasu. Můžete však použít alias podle jiných odpovědí



  1. Příliš dlouhá chyba řetězce vývojáře Oracle Sql

  2. PostgreSQL - maximální počet parametrů v klauzuli IN?

  3. Použití MySQLi k VLOŽENÍ dat do databáze

  4. T-SQL Přeskočit Převzít uloženou proceduru