2017-02-02 5 views
1

2つの表からselect文を実行しようとしていますが、戻すデータには3-4回の結合が必要です。両方のテーブルと列が存在する場合、無効な識別子ORA-00904: "ADDRESS_USAGES"。 "AUS_PRO_REFNO":無効な識別子

: "ADDRESS_USAGES" "AUS_PRO_REFNO":私はエラーに

ORA-00904を取得しています。私はこのエラーに関連する記事を読んだが、私がちょうど始まっていることを考えれば、私はそれらの頭や尾を作ることができない。任意の提案(優しい)。あなたはまだaddress_usagesテーブルに参加していませんので、TIA

select ins_srq_no, adr_line_all from inspections 
    join properties 
    on inspections.ins_pro_refno = properties.pro_propref 
     join addresses 
     on properties.pro_propref = address_usages.aus_pro_refno 
      join address_usages 
      on address_usages.aus_pro_refno = addresses.adr_refno 
       where fsc.address_usages.end_date is null; 
+0

私は、エラーが発生した理由をカバーする回答を追加しましたが、修正されたクエリを示唆していますが、わかりませんあなたのテーブル定義を理解することなく後半部分について説明します。 SQLエラーに関する質問をするときは、テーブル定義(外部キーを含む)を含めることをお勧めします。 –

+0

ありがとうございました。私は、adr_line_allという列が「アドレス」というテーブル内にあることを追加します。これは、これを含める必要があることを認識しています。 –

答えて

0

このon句以下のSQLは、間違っています:on properties.pro_propref = address_usages.aus_pro_refno。これは、Oracleにあなたが見ているエラーを投げさせる原因となります。それはテーブルやカラムが存在しないということではなく、あなたがまだテーブルに加わっていないので、そのクエリ内でその識別子が無効であるという事実です。

(私はあなたのテーブル構造と外部キーを見ることなく100%確信することはできません)、アドレスをプロパティに戻す必要があります。その場合、クエリは次のようになります。