2012-05-03 44 views
1

我從使用PHP處理數據處理MySQL數據時遇到問題。這是表格模式:使用PHP處理SQL JOIN結果

parents: 
id | firstname | lastname 

children: 
id | firstname | lastname 

parent_child_link 
child_id | parent_id 

我需要這樣保存數據,因爲我想將多個父母鏈接到一個孩子。現在,當我想要檢索一個孩子時,我想要獲取孩子的所有信息,但也需要父母的ID。這顯然是一個連接查詢,所以我用:

SELECT * 
FROM children c 
JOIN parent_child_link l on l.child_id=c.id 
WHERE c.id=1 

現在,當這個孩子與ID = 1有2位家長(允許有ID的1和2說),我得到這樣的結果:

id | firstname | lastname | parent_id 
1 test  test  1 
1 test  test  2 

如果我在PHP中處理這個,我會得到2個數組,但我想在一個數組中,例如

array(
    'firstname' => 'test', 
    'lastname' => test', 
    'parents' => array(1, 2) 
) 

我該如何做到這一點?

非常感謝!

回答

0

,你可以處理你的PHP查詢結果的逗號分隔的數組。創建一個新的數組,索引在查詢結果中的每個子項id上,並將其添加到數組中,如果它不存在。如果是,請將父ID添加到其「父母」項。

+0

我認爲這會導致更多的工作。現在我只需要使用GROUP_CONCAT執行查詢並分解父ID即可。 – EsTeGe