首页 > 解决方案 > Postgres 对 FROM 子句的无效引用

问题描述

我很难找到我在这里做错了什么。

    select * from prog_log as g0, order_line as g1, logstat as g2
    inner join channel as g3 on g3.chn_serial = g0.log_chn_id

我收到以下错误:

    invalid reference to FROM-clause entry for table "g0"
    LINE 2: inner join channel as g3 on g3.chn_serial = g0.log_chn_id
                                                ^
    HINT:  There is an entry for table "g0", but it cannot be referenced from this part of the query.

根据我的阅读,我需要在 g0、g1 和 g2 上进行某种连接,但我的数据库在它们之间没有公共列,所以我不能进行连接。

任何帮助将不胜感激。

标签: sqlpostgresqlpostgresql-9.5

解决方案


Postgres 中的逗号比 JOIN 表达式的绑定更弱;将 FROM 子句中的每个逗号更改为 CROSS JOIN。请参阅文档相关部分中的注释


推荐阅读