mysql,加入同一个表?

时间:2011-03-07 09:45:24

标签: mysql join

我有一张类似

的表格
  

id,parentId,name
  1,null,first
  2,null,second
  3,1,第一个孩子

我想进行查询,以便我可以使用看起来像

的行结束
  

1,null,first
  2,null,second
  3,首先,第一个孩子

所以基本上像

SELECT id, (SELECT name FROM pages WHERE id=parentId), name FROM pages

当然显然查询很糟糕。

2 个答案:

答案 0 :(得分:2)

您可以尝试以下内容,它仅限于父级和子级两个级别。 它不适用于3级或更多级别,例如。父 - >儿童安全>儿童

SELECT  Parent.ID,
        Child.name,
        Parent.Name
FRom    yourTable as Parent LEFT JOIN 
        yourTable as Child On Parent.ParentID = Child.ID

答案 1 :(得分:1)

尝试:

select id, parent = null, name from pages where parentid is null

union all

select id, parent = top.name, name = sub.name
from pages sub
     join pages top on sub.parentid = top.id