【问题标题】:Oracle SQL Query - Replace ID by NameOracle SQL 查询 - 用名称替换 ID
【发布时间】:2021-01-21 05:03:30
【问题描述】:

我有一个表 group 包含组及其父组:

groupid   name   parentid
-------------------------
   1      test       1 
   2      second     1
   3      3rd        1
   4      next       2

如何查询此表以接收这样的结果(名称而不是 id)

groupid   name     parent
---------------------------
   1      test     test
   2      second   test
   3      3rd      test
   4      next     second

【问题讨论】:

    标签: sql oracle inner-join self-join


    【解决方案1】:

    这是一个自加入:

    select t.groupid, t.name, p.name parentname
    from mytable t
    inner join mytable p on p.groupid = t.parentid
    

    如果您缺少parentids,请改用left join

    【讨论】:

    • @ChristianTimm:你知不知道你接受的答案和我的一模一样,10分钟后才发帖?
    【解决方案2】:

    您可以使用以下查询:

    select A.groupid, A.name, B.name as parentid
    from group A
    left join group B on A.groupid = B.parentid
    

    【讨论】:

    • 谢谢!这工作正常,现在我可以将其实现为更大的查询。位置好吗? [code] 选择 PPOM_USER.PUSER_ID, PPOM_USER.PUSER_NAME, PPOM_GROUP.PNAME, p.PNAME from PPOM_GROUP full external join ( PPOM_USER full external join PPOM_MEMBER on PPOM_USER.PUID = PPOM_MEMBER.RUSERU ) on PPOM_GROUP.PUID = PPOM_MEMBER.RGROUPU加入 PPOM_GROUP p 在 p.PUID = PPOM_GROUP.RPARENTU[/code]
    猜你喜欢
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2016-06-21
    • 2021-12-26
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多