从父列 id 获取父列值

Posted

技术标签:

【中文标题】从父列 id 获取父列值【英文标题】:Get parent column value from parent column id 【发布时间】:2020-08-05 16:07:35 【问题描述】:

我正在尝试从父 id 获取数据并从查询中获取PARENT_CODE 结果(来自CD_CODE 列),根据父列它等于主 id。但我不知道我该怎么做,我看到并阅读了有关使用 CONNECT BY PRIOR 的信息,但我没有成功。

我的桌子:

ID   PARENT_ID  CD_CODE
-------------------------------
675             9000000000000
676             2000000000001
677             6000000000003
678             1000000000006
679       676   2100000000008
680       677   6400000000009
681       677   6300000000002
682       678   1200000000009
683       677   6100000000000
684       676   2200000000004
685       675   9100000000006

我需要的是获取 PARENT_CODE(但此列不存在):

ID   PARENT_ID    PARENT_CODE   CD_CODE
----------------------------------------------
675                             9000000000000
676                             2000000000001
677                             6000000000003
678                             1000000000006
679       676   2000000000001   2100000000008
680       677   6000000000003   6400000000009
681       677   6000000000003   6300000000002
682       678   1000000000006   1200000000009
683       677   6000000000003   6100000000000
684       676   2000000000001   2200000000004
685       675   9000000000000   9100000000006

SQL语句:

SELECT ID, PARENT_ID, CD_CODE 
FROM MY_TABLE

【问题讨论】:

【参考方案1】:

这是一个自加入:

select t.*, p.cd_code parent_code
from mytable t
left join mytable p on p.id = t.parent_id

【讨论】:

感谢@GMB!没想到self join,其实是一个很简单的解决方案,非常感谢。

以上是关于从父列 id 获取父列值的主要内容,如果未能解决你的问题,请参考以下文章

根据条件分组/不同列[关闭]

Yii2. Kartik Select2 小部件宽度

打字稿从父ID中获取所有子孙ID的数组

如何从父级获取数据到子级?

从 JArray 中获取唯一的列值

从父级而不是实体框架中的整个对象获取某个子属性