2011-01-20 59 views
0

我正在嘗試執行一個mysql查詢,該查詢將創建一個父項的數組,並在其子項下面。但我不是100%確定的。這是我迄今所做的:需要mysql查詢幫助 - 按家長分組

SELECT * FROM類別射頻ORDER BY父,名ASC

這裏就是正在輸出(陣列):

Array 
(
    [0] => stdClass Object 
     (
      [id] => 7 
      [name] => Safety Clothing 
      [parent] => 0 
     ) 

    [1] => stdClass Object 
     (
      [id] => 8 
      [name] => Safety Footwear 
      [parent] => 0 
     ) 

    [2] => stdClass Object 
     (
      [id] => 9 
      [name] => Workwear 
      [parent] => 0 
     ) 

    [3] => stdClass Object 
     (
      [id] => 4 
      [name] => Polos 
      [parent] => 7 
     ) 

    [4] => stdClass Object 
     (
      [id] => 3 
      [name] => Shirts 
      [parent] => 7 
     ) 

    [5] => stdClass Object 
     (
      [id] => 6 
      [name] => Jackets 
      [parent] => 9 
     ) 

    [6] => stdClass Object 
     (
      [id] => 1 
      [name] => Pants 
      [parent] => 9 
     ) 

    [7] => stdClass Object 
     (
      [id] => 2 
      [name] => Shirts 
      [parent] => 9 
     ) 

    [8] => stdClass Object 
     (
      [id] => 5 
      [name] => Shorts 
      [parent] => 9 
     ) 

) 

正如你所看到的子項具有父項(父被設置爲0)的ID,但我不知道如何將它全部合併一起做一個數組是這樣的:

- 孩子

- 孩子

- 孩子

- 孩子

- 孩子

任何幫助,將不勝感激:)

回答

1

如果能夠構建使用來自該陣列中的數據嵌套的數組: 每個對象將有一個數組變量。然後,在初始數組構建完畢後,通過解析初始數組手動移動其父項下的子項。

解析的方法將是遞歸的,並將採用當前正在構建的初始數組和子數組。

2

另外

SELECT父,GROUP_CONCAT(名稱)從類別作爲RF GROUP BY 1名稱;

對於每個父母,第一列中的父母標識和第二列中的逗號分隔的孩子名稱都會得到一行。