我没有找到足够具体到我正在寻找的答案,所以我希望这不是一个重复的问题。
我正在尝试在结果列表中创建一个如下所示的全名列表:
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_submits
WHERE form_id
='10'和element_label
< 4
我想要的结果是:
group_id | full_name
34 John A Doe
35 George C Washington
非常感谢你的帮助。
答案 0 :(得分: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;
答案 1 :(得分: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