2017-03-20 52 views
0

私はこの大きな選択肢があります。私は正しいと思います。実行する必要がありますが、なぜ私にエラーが発生するのか分かりません。私のテーブルはすべて単一のテーブルで、それらの間には関係がありません。何が起こるかについての任意のアイデア?エラーSQLの状態:42P01ポストグル

ERROR: invalid reference to FROM-clause entry for table "t0_0" 
LINE 1: mtx_det c1 ON c0.psirtid = c1.alert_id) t4_0 ON t0_0.id_dev... 
                  ^
HINT: There is an entry for table "t0_0", but it cannot be referenced from this part of the query. 
********** Error ********** 

ERROR: invalid reference to FROM-clause entry for table "t0_0" 
SQL state: 42P01 
Hint: There is an entry for table "t0_0", but it cannot be referenced from this part of the query. 
Character: 352 

任意のアイデア:

select DISTINCT t0_0.id_pord, t0_0.prod_fam, t0_0.prod_nam, t0_0.prod_mod 
from inventory t0_0 
INNER JOIN (select DISTINCT c0.id_dev 
      FROM ps_det c0 
      INNER JOIN (select DISTINCT c0.id_dev 
          FROM ps_det c0 
          INNER JOIN mtx_det c1 
          ON c0.psirtid = c1.alert_id ) t4_0 
       ON t0_0.id_dev = t3_0.id_dev 
      WHERE c0.invent = '1333' 
      AND c0.cust = '598') t3_0 
    ON t0_0.id_dev = t3_0.id_dev 
where t0_0.prod_fam IN ('Cisco', 'Catalyst', '3750 Series') 
AND t0_0.invent ='1333' 
AND t0_0.cust = '598' 

それは私にそのエラーを与える:それが起こるときに、第2 ONでますか?

答えて

1

あなたのサブクエリのいずれかからt0_0を参照しています

select DISTINCT c0.id_dev 
FROM ps_det c0 
INNER JOIN (select DISTINCT c0.id_dev 
      FROM ps_det c0 
      INNER JOIN mtx_det c1 
       ON c0.psirtid = c1.alert_id ) t4_0 
    ON t0_0.id_dev = t3_0.id_dev -- HERE'S YOUR PROBLEM 
WHERE c0.invent = '1333' 
      AND c0.cust = '598' 

各サブクエリは、独自のエイリアスを含まなければならないので、サブクエリは次のようになります。

select DISTINCT c0.id_dev 
FROM ps_det c0 
INNER JOIN (select DISTINCT c0.id_dev 
      FROM ps_det c0 
      INNER JOIN mtx_det c1 
       ON c0.psirtid = c1.alert_id ) t4_0 
    ON t4_0.id_dev = c0.id_dev -- HERE'S THE FIX 
WHERE c0.invent = '1333' 
      AND c0.cust = '598' 
+0

私は追加する必要がありますか? :)申し訳ありませんあなたのためではありませんが、私は非常によくごめんなさい理解できません –

+0

@JoanTriay編集を参照してください – JohnHC

+0

ありがとう! :)私はクエリを変更していないこの1つの質問のみ? –

関連する問題