2014-03-05 66 views
0

我有一个项目表,其中每个项目都可以是任何其他项目的子项目。例如表MySQL选择:用名称替换parent_id列

mysql> select * from projects; 

+----+-----------+------+ 
| id | parent_id | name | 
+----+-----------+------+ 
| 1 |  NULL | foo | 
| 2 |  NULL | bar | 
| 3 |   2 | baz | 
+----+-----------+------+ 

我想替换第二列(PARENT_ID)与父项目的名称,所以在我的情况下,第三行应该成为

| 3 | bar  | baz | 
+----+-----------+------+ 

什么是查询那?

+0

对不起,但我不同意编辑,因为它是误导性的,表明查询应该只导致一行。它应该仍然导致3行。所以我把它改回来了,但是留下了底线。 – SzG

回答

4
SELECT A.id, B.name ParentName, A.name 
FROM projects A 
LEFT JOIN projects B 
    ON A.parent_id = B.id 
+0

我该如何接受这个答案?它说'你可以在6分钟内接受答案' – SzG

+3

我怎么打开门?一个标志说'推'。 – Strawberry

+0

@SzG没有必要急于接受答案(即使我欣赏这种姿势),但是有一个时间限制,我相信这是15分钟。 – Lamak