sql - 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 上进行某种连接,但我的数据库在它们之间没有公共列,所以我不能进行连接。
任何帮助将不胜感激。
解决方案
Postgres 中的逗号比 JOIN 表达式的绑定更弱;将 FROM 子句中的每个逗号更改为 CROSS JOIN。请参阅文档相关部分中的注释。
推荐阅读
- java - java.io.IOException:权限被拒绝无法在 Linux 中创建文件
- csv - 如何创建一个 splunk CSV 文件?
- angular - 自定义异步验证器返回类型错误
- python - GenomicFeatures 安装和加载错误“通过 Python3 rpy2 没有名为‘GenomicFeatures’的包”
- database - 更改数据库路径 - Mongodb 分片集群
- r - 收到错误幻数时如何恢复我的 R 命令
- elasticsearch - 使用通配符的 ElasticSearch RestHighLevelClient 搜索不起作用
- javascript - 这个引导箱是如何创建的?
- snowflake-cloud-data-platform - 无法为使用 PEP 517 且无法直接安装的 snowflake-connector-python 构建轮子
- android - 按下按钮显示 Android In-App-Review 对话框?