gpt4 book ai didi

sql - 如何在单个 SQL 语句中查询两次 postgresql 表

转载 作者:行者123 更新时间:2023-11-29 12:54:50 24 4
gpt4 key购买 nike

我有两张 table 。

af_fibrephase 是非洲光纤网络项目列表,由以下关键字段组成:

  • the_geom <- 光纤网络 map
  • operator_id <- 网络运营商的唯一 ID
  • owner_id <- 网络所有者的唯一 ID

af_organisation 是一个表格,提供有关 af_fibrephase 中引用的组织的更多详细信息。我为运营商和所有者组织使用了一个表,因为它们有时是同一件事,有时又不是。 af_organisation 的关键字段是:

  • organisation_id <- 关键引用字段
  • 姓名<- 组织名称
  • web_url <- 组织的 url
  • 等等

我想进行一个查询,从 af_fibrephase 中提取项目并从组织表中填充有关所有者和运算符(operator)的详细信息。通过示例,看起来像下面这样的东西应该有效,但它会产生连接错误。

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

最佳答案

见上面的评论。使用 LEFT OUTER JOIN 和来自 af_organisation 的别名所需字段。

SELECT fibre.*
, org1.name AS operator_name
, org1.web_url AS operator_web_url
, org1.<etc> AS operator_<etc>
, org2.name AS owner_name
, org2.web_url AS owner_web_url
, org2.<etc> AS owner_<etc>
FROM af_fibrephase AS fibre
LEFT OUTER JOIN af_organisation org1 on fibre.operator_id = org1.organisation_id
LEFT OUTER JOIN af_organisation org2 on fibre.owner_id = org2.organisation_id

关于sql - 如何在单个 SQL 语句中查询两次 postgresql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com