2011-06-24 23 views
3

私はそれらが私のテーブルPHPまたはMYSQL:結果をグループ化する方法は?

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 

ような結果を得るために、クエリを生成するMySQL に取り組んでいますが可能ということですか?

おかげ

EDIT

それが不可能な場合は、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

関連する問題