sql >> データベース >  >> RDS >> Sqlserver

SQLの列名があいまいなクエリエラー

    複数のテーブルからデータを選択しているときにこのエラーが発生します テーブルと選択した列の少なくとも1つを結合する (*を使用してすべての列を選択した場合にも発生します)複数のテーブルに同じ名前で存在します (選択/結合されたテーブル)。その場合、どのテーブルから列を選択するかを指定する必要があります。

    以下は、上記で説明した概念のソリューション実装の例です。

    InvoiceIDだけにあいまいさがあると思います InvoiceLineItemsの両方に存在します およびInvoices 他のフィールドは明確に見えます。だからこれを試してみてください

    InvoiceIDを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
    

    エイリアスを使用せずに、すべての列(selection、where、group by、order by)にtablename.columnnaeを使用できます。ただし、他の回答に基づいてエイリアスを使用することもできます



    1. MySQLクエリパフォーマンスチューニング

    2. MySQLでselectから削除するにはどうすればよいですか?

    3. PyramidでSalesForceをデータソースとして接続する方法

    4. ユリウス日をPostgreSQLの日付に変換する