2016-12-06 4 views
1

私は2つのテーブルを結合し、idタグに基づいて複数の列に列を分離しようとしています。SQLデータをすべて1列に並べ替える最も良い方法は何ですか?

例えば 表の "名前"

id | field_number | value | 
---|--------------|------ | 
1 |  1  | john | 
1 |  2  | murphy| 
2 |  1  | mary | 
2 |  2  | murphy| 

表 "ID"

id ¦ user 
1 ¦ person1 
2 ¦ person2 

結果

id ¦ First Name ¦ Last Name ¦ user 
1 ¦ john ¦ murhpy ¦ person1 
2 ¦ mary ¦ murphy ¦ person2 

これを行う簡単な方法はありますか?

+0

http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really-that-bad/ 3653574 – e4c5

答えて

0

使用条件の集約:

SELECT t.id, 
     MAX(CASE WHEN s.field_number = 1 THEN s.value END) as first_name, 
     MAX(CASE WHEN s.field_number = 2 THEN s.value END) as last_name, 
     t.user 
FROM `id` t 
JOIN `name` s 
ON(t.id = s.id) 
GROUP BY t.id,t.user 
+0

これは、1行のデータしか表示していないようですが、このような行をすべて表示する方法はありますか? –

+0

申し訳ありませんが、完璧な作品をありがとうございました。 –

関連する問題