【问题标题】:Query on a self-referential table查询自引用表
【发布时间】:2012-11-28 06:54:51
【问题描述】:

假设我有这个简单的表格

UserID|Name  |Aid ID
  1   |Bob   | 3
  2   |Alice | 1
  3   |Ted   | 4
  4   |Sam   | 2

在查询中,我必须列出此人的姓名,以及他们帮助的人的姓名。我想过做一个视图,但我觉得这可以通过一个简单的查询来完成,而不是创建一个视图。我将如何做到这一点,以及查询是如何工作的,就像它背后的基本原理一样?

【问题讨论】:

  • 值得一提的是,一个视图基本上只是保存了SQL查询。两者都不比另一个“简单”。

标签: database postgresql join view


【解决方案1】:

您需要将表连接到自身

SELECT  a."UserID",
        a."Name",
        b."Name" As AIDName
FROM    tableName a
        INNER JOIN tableName b
            ON a."AidID" = b."UserID"

【讨论】:

  • 我不知道为什么我认为您只能将表与其他表连接起来。谢谢。
  • 那个 SQLFiddle 到底是什么? Like 向您展示了当您向 PSQL 发出命令时会发生什么?
  • 这是一个用来测试查询的网站,你点击链接了吗?
  • 我做到了,只是在问显而易见的问题。看起来很有用,谢谢你的链接。 =)
【解决方案2】:

查询将是

select persons.name,aid.name 
from your_tablename as persons,
     your_tablename as aid
where persons.aidid=aid.userID

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 2014-06-26
    • 2020-02-10
    • 1970-01-01
    • 2021-09-03
    • 2018-05-09
    • 1970-01-01
    • 2021-12-20
    • 2011-01-20
    相关资源
    最近更新 更多