sql - Postgresql 在同一个表中选择和子选择

标签 sql postgresql select join

我有以下表格:

Table person:
id |      name |
---------------+
 1 |      adam |
 2 |     chris |
 3 |     nancy |
 4 |  nathalie |
 5 |      holy |


Table relation:
id | person | parent |
---+--------+--------+
 1 |      2 |      1 |
 2 |      2 |      3 |
 3 |      1 |      4 |
 4 |      5 |      2 | 

我想要一个产生类似如下内容的查询:

person |   parent |
-------+----------+
 chris |     adam |
 chris |    nancy |
  adam | nathalie |
  holy |    chris |

我不知道如何达到预期的结果。

最佳答案

relation 表已经显示了人们的 parent 是谁。您只需将其连接到 person 表(两次)即可将这些 ID 转换为名称:

SELECT p1.name, p2.name
FROM   relation r
JOIN   person p1 ON p1.id = r.person
JOIN   person p2 ON p2.id = r.parent

关于sql - Postgresql 在同一个表中选择和子选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32298851/

相关文章:

java - 从 Oracle 数据库中的数百万行中选择的最佳方法

sql - 如何比较两个日期的月份部分?

JQuery 选择器有

javascript - 将 <select> 下拉菜单变成更高级的 JQuery 插件是什么?

SQL:标记哪个WHERE条件匹配

sql - 查找时间范围(1 小时)内的值范围(5 点)

database - 替代 VBScript 中的 sendkeys

postgresql - 在 docker 容器中创建 postgres 扩展

sql - postgres 选择从不同表中选择的数组中的 id

php - 选择没有 AS(别名)的多个表?