在一个查询中检索父子记录

时间:2014-06-25 04:38:25

标签: php mysql

我有一个名为'album'的类似数据集

album_id    parent_id   name
2           NULL        ...
34          NULL        ...
35          2       ...
36          2       ...

在php中,我的网址看起来像这样

http://www.website/album.php?albumid=2

换句话说,找到album_id 2的parent_id(wich为null)并返回父/子:

album_id    parent_id   name
2           NULL        ...
35          2       ...
36          2       ...

当我的网址看起来像这样

http://www.website/album.php?albumid=35

找到album_id 35的parent_id(2为2),返回记录为album_id = 2,parent_id = 2(父/子):

album_id    parent_id   name
2           NULL        ...
35          2       ...
36          2

我如何在一个查询中执行此操作?

1 个答案:

答案 0 :(得分:1)

这个怎么样?

SELECT *
FROM (
    SELECT parent_id 
    FROM album
    WHERE album_id = 35
) AS t1 INNER JOIN album t2
  ON t1.parent_id = t2.parent_id OR t1.albumn_id = t1.parent_id;