繁体   English   中英

错误SQL状态:postgres中为42P01

[英]Error SQL state: 42P01 In postgres

我有这么大的选择,我认为是正确的,我必须执行,但是我不知道为什么它会给我一个错误。 我所有的表都是单个表,它们之间没有任何关系。 有什么想法吗? 发生时处于第二个ON

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'

它给了我这个错误:

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

任何想法?

您从以下子查询之一引用了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' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM