【发布时间】:2017-09-07 00:32:13
【问题描述】:
我有两张桌子。
af_fiberphase是非洲光纤网络项目列表,包含以下关键领域:
- the_geom
- operator_id
- owner_id
af_organisation 是一个表格,提供有关 af_fiberphase 中引用的组织的更详细信息。我为运营商和所有者组织使用了一个表,因为它们有时是相同的,有时不是。 af_organisation 的关键字段是:
- organisation_id
- 名称
- web_url
- 等
我想做一个查询,从 af_fiberphase 提取项目并从组织表中填充有关所有者和操作员的详细信息。查看示例,看起来像下面这样的东西应该可以工作,但它会产生一个连接错误。
SELECT af_fibrephase.*
FROM af_fibrephase AS fibre
INNER JOIN af_organisation AS org1 on fibre.operator_id = org1.organisation_id
INNER JOIN af_organisation AS org2 on fibre.owner_id = org2.organisation_id
可以在af_fibrephase 和af_organisationhttps://carto.com 上找到实际表格
【问题讨论】:
-
它会产生错误,因为您在定义别名后使用表名..in
select. -
在两者上都使用 LEFT JOIN 而不是 INNER JOIN。然后在您的 SELECT 中,引用您需要的 org1 和 org2 列。
标签: sql postgresql join cartodb