[解決済み] SQLのカラム名があいまいな場合のクエリエラー
2022-03-13 20:57:54
質問
このクエリ(InvoiceID)でambiguous column name errorが発生します。なぜなのかがわかりません。すべて正しく結合されているように見えますが、なぜSSMSはVendorIDを表示することを知らないのでしょうか?
クエリ
SELECT
VendorName, 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, InvoiceID, InvoiceSequence, InvoiceLineItemAmount
解決方法は?
からデータを選択するときにこのエラーに直面します。 複数のテーブル テーブルを結合して 選択されたカラムの少なくとも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を使用することができます。しかし、あなたは他の答えによって導かれるように、エイリアスを使用することができます。
関連
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQL Server の VARCHAR/NVARCHAR 文字列に改行を挿入する方法
-
[解決済み] SQLサーバーで行を列に効率的に変換する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
-
[解決済み】結合を使用したSQL更新クエリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL - ストアドプロシージャ (データ型、関数)
-
executeQuery()ソリューションでデータ操作文を発行できない。
-
MHAクラスタエラーサマリーの構築
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] SQL ServerにおけるINSERT OR UPDATEに関する解決策
-
[解決済み] NOT IN vs NOT EXISTS
-
[解決済み] 複数の列に対してSELECT DISTINCTする方法(またはできる方法)は?