2011-06-24 15 views
3

我對MySQL的 工作的那些都是我的表PHP或MYSQL:如何按ROW分組結果?

D 
---------- 
id , name 
---------- 
1 , d1 
2 , d2 
3 , d3 

t 
---------- 
id , name 
---------- 
1 , t1 
2 , t2 
3 , t3 

c 
---------- 
id , d_id , t_id 
---------- 
1 , 1 , 1 
1 , 1 , 2 
1 , 1 , 3 
1 , 2 , 1 
1 , 2 , 2 
1 , 2 , 3 
1 , 3 , 1 
1 , 3 , 2 
1 , 3 , 3 

我想產生一個查詢來獲取引起這樣

------------------------------------------- 
d.name , t.name , t.name , t.name 
------------------------------------------- 
d1  , t1  , t2  , t3 
d2  , t1  , t2  , t3 
d3  , t1  , t2  , t3 

這可能嗎?

感謝

編輯

如果它是不可能的,是有關於如何得到它作爲一個數組或使用PHP對象的任何想法?

+0

每個d.name是否會有相同數量的t.names? – Theresa

+0

對於某些情況下沒有 – trrrrrrm

+1

d,t和c的背景和含義可能能夠更清楚地表明你實際上試圖實現的目標 –

回答

1

不,在MySQL中動態生成列並不是一個好主意。只需選擇d.name - t.name對,然後根據d.name創建一個散列即可。

例如,Perl有一個fetchall_hashref可以適合你。其他語言通常具有內置的相同功能,但您並未指定純SQL以外的編程語言。

+0

看起來完全如我所願,你有任何想法如何在PHP中做到這一點? – trrrrrrm

+0

我不是一個PHP專家,但大多數人在這裏像PDO一樣的StackOverflow。 [似乎PDO支持這個](http://www.php.net/manual/en/pdostatement.fetchall.php),但這可能需要另一個問題(或者在這裏編輯)。 Offcourse總是有[解決方法](http://snipplr.com/view/1358/mysql-fetch-all/)。 – Konerak