以下のコードを実行した後、ORA-25155エラーが発生します
SELECT p.prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
FROM products p NATURAL JOIN sales s NATURAL JOIN customer c
WHERE prod_id = 148;
コメントで示唆されているように、このORA-25155エラーは、「prod_id」だけでなく「p.prod_id」という列名を修飾していることを示しています。それがあなたのエラーを引き起こしているものです。
この完全に機能するSQLFiddleコードを試してください。クエリは次のようになります。
SELECT prod_id, prod_name, prod_list_price,quantity_sold,cust_last_name
FROM products
NATURAL JOIN sales
NATURAL JOIN customer
WHERE prod_id = 148;
複数のNATURAL JOIN
テーブルが1組のテーブルを結合し、次に3番目のテーブルを結果に結合します。NATURAL JOIN
構文には明示的な結合述語がないため、ここでは修飾子は使用されません。
natural join
Oracleでは、共通の名前を持つ各テーブルの列で2つのテーブルを結合します。したがって、結合後は、エイリアスが冗長であるため、エイリアスと自然に結合されたテーブル間で共通の列を参照しないでください。
using()
これは、join句で機能する方法と似ています。