0

私が探しているものにぴったりの回答が見つからなかったので、これが重複した質問ではないことを願っています.

次のような結果リストに氏名のリストを作成しようとしています。

id  | form_id | element_label | element_value | group_id
245   10        1               John            34
245   10        2               A               34
245   10        3               Doe             34
245   10        1               George          35
245   10        2               C               35
245   10        3               Washington      35

これは私のクエリからのものです: SELECT * FROM jm3_formmaker_submitsWHERE form_id= '10' AND element_label<4

私が望む結果は次のようになります。

group_id | full_name
34         John A Doe
35         George C Washington

大変お世話になりました。

4

2 に答える 2

2

機能に注目する必要がありますGROUP_CONCAT()

次のようになります。

SELECT group_id, 
       GROUP_CONCAT(element_value 
                    ORDER BY element_label
                    SEPARATOR ' ')
         AS full_name 
FROM jm3_formmaker_submits 
WHERE form_id = 10 
  AND element_label < 4 
GROUP BY group_id;
于 2013-06-25T18:07:20.227 に答える
0

これにより、文字列構造をより細かく制御できます (スペースで区切りたいと思うでしょう?):

select group_id,concat(a,' ',b,' ',c) from
(select group_id,element_value as a from jm3_formmaker_submits where element_label=1) as first_name,
(select group_id,element_value as b from jm3_formmaker_submits where element_label=2) as middle_name,
(select group_id,element_value as c from jm3_formmaker_submits where element_label=3) as last__name
where
middle_name.group_id=first_name.group_id and
last__name.group_id=first_name.group_id
于 2013-06-25T18:09:24.720 に答える