0

こんにちは、私は sql plus を使用しています。4 つのテーブルから 5 つの列を選択し、結果を表示する必要があります。これは私が使用したコードと私が得るエラーです。

SELECT CustomerID, OrderID, AircraftID, Quantity, TotalCost 
FROM Customer_Table, Order_Table, Aircraft_Table, Orderline;

1 行目のエラー: ORA-00918: 列があいまいに定義されています

これらの列を取得して複数のテーブルから表示するコードは何ですか? これを手伝ってください。

4

3 に答える 3

1

理由は、同じ名前の列が両方のテーブルに存在する 2 つ以上のテーブルを結合する SQL ステートメントを実行しようとしたためです。

この SQL クエリの例

SELECT suppliers.supplier_id, quantity
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

Supplier_id 列は、suppliers テーブルと orders テーブルの両方に存在するため、次のように列にテーブル名のプレフィックスを付ける必要があります。

さらに、それらの間でテーブルをリンクする必要があります。上記の例を取り上げると、この種のことを行う必要があります

WHERE suppliers.supplier_id = orders.supplier_id;

suppliersテーブルとテーブルをorders列でリンクすることを意味しますsupplier_id

この記事は、問題を理解するのに役立つ場合があります: http://www.sitepoint.com/understanding-sql-joins-mysql-database/

于 2013-04-06T00:56:41.720 に答える
0

エラーは、これらのテーブルに同じ名前の列が 1 つ以上存在することを意味します。そのため、どのテーブルからどの列を選択すればよいかわかりません。テーブル名を指定してから列を指定できれば、これはなくなるはずです。

于 2013-04-06T00:55:26.203 に答える
0

私は具体的に SQL plus を知りませんが、ほとんどの SQL バリアントでは、テーブル名を指定してから列名を指定する必要があります。SELECT Customer_Table.CustomerID など……これにより、結果プロジェクションでどの列を使用する必要があるかが明確になります。

于 2013-04-06T00:53:36.590 に答える