SQL - 使用一行数据来获取另一个数据

时间:2016-06-19 14:28:50

标签: sql

我的问题是关于下表:

enter image description here

我正在尝试选择id,parent_id和parent_id主体(其中parent_id主体是同一个表中id = parent_id的行的主体行),即如果我们查看图片中的第一行,选择id = 11422,parent_id = 211,parent_id body将是包含id = 211的行的主体。

我很难找到编写SQL命令的正确方法来执行此操作,是否可以执行此操作?如何?

1 个答案:

答案 0 :(得分:1)

我认为你想要做一个叫做自我加入的事情,这只不过是把一张桌子连接到自己身上。

SELECT t1.id, t1.parent_id, COALESCE(t2.body, '')
FROM yourTable t1
LEFT JOIN yourTable t2
    ON t1.parent_id = t2.id

如果您希望每个LEFT JOIN值都显示在结果集中,即使其id没有匹配的parent_id值,我也会使用id。在这种情况下,我使用COALESCE显示正文的空字符串。