mysql基于一列从两行中提取列
我正试图将下表中“value”列的两行合并为一行mysql基于一列从两行中提取列,mysql,Mysql,我正试图将下表中“value”列的两行合并为一行 mysql> select * from table; +-----+---------+----------+------------------------+ | id | rsvp_id | field_id | value | +-----+---------+----------+------------------------+ | 181 | 37 | 1 | Fir
mysql> select * from table;
+-----+---------+----------+------------------------+
| id | rsvp_id | field_id | value |
+-----+---------+----------+------------------------+
| 181 | 37 | 1 | First |
| 184 | 37 | 4 | Last |
| 187 | 37 | 10 | |
| 190 | 37 | 13 | spicegirls |
| 193 | 37 | 7 | mark@test2.com |
| 196 | 40 | 1 | Brian |
| 199 | 40 | 1 | Smith |
| 202 | 40 | 7 | Brian@test .com |
| 205 | 40 | 10 | BBQ |
+-----+---------+----------+------------------------+
9 rows in set (0.00 sec)
理想情况下,我希望得到以下结果
rsvp_id | value
======== ========
37 First Last
40 Brian Smith
该查询仅获取字段_id=1的行,然后连接value列,并创建一个带有rsvp_id和concat值的新行
另外,现在的field_id列和1就是一个例子,我必须找出如何使它工作,而不是1
它从另一个表中获取条件
基本上,以上是名字和姓氏的值。字段\u id是另一个表的外键
我曾尝试在网上搜索并自己处理,但我无法将这两行合并为一行
谢谢。您必须先使用分组,然后再使用分组 类似这样的(未经测试)可能会起作用:
SELECT rsvp_id, GROUP_CONCAT(value SEPARATOR ' ')
FROM t
WHERE field_id = 1
GROUP BY rsvp_id
有关详细信息,请参阅MySQL文档,并了解值的顺序等:
您必须先使用分组,然后再使用
GROUP\u CONCAT
类似这样的(未经测试)可能会起作用:
SELECT rsvp_id, GROUP_CONCAT(value SEPARATOR ' ')
FROM t
WHERE field_id = 1
GROUP BY rsvp_id
有关详细信息,请参阅MySQL文档,并了解值的顺序等:
您的查询是什么样子的?类似于:group_concat(值“”)where field_id in(1,4)group by rsvp_id这是我到目前为止得到的:选择rsvp_id,group_concat(值分隔符“”)作为n FROM registration_rsvp_field_value left join registration_rsvp_custom_field on(registration_rsvp_custom_field.id=registration_rsvp_field_value.field_id)left join registration_rsvp on(registration_rsvp.id=registration_rsvp_field_value.rsvp_id)WHERE field_id IN(1,2)和form_id=1 groupby rsvp_id你的查询是什么样子的?类似于:GROUP_concat(value.),WHERE field_id IN(1,4)按rsvp\u id分组这是我到目前为止所拥有的:从注册中选择rsvp\u id,group\u CONCAT(值分隔符“”)作为n\u rsvp\u字段\u值左连接注册\u rsvp\u自定义\u字段on(注册\u rsvp\u自定义\u字段。id=注册\u rsvp\u字段\u值。字段\u id)左连接注册\u rsvp on(registration_rsvp.id=registration_rsvp_field_value.rsvp_id)其中字段_id在(1,2)中,表单_id=1 groupby rsvp_id嘿,这似乎与我之前的操作完全相同。下面的查询从registration_rsvp_field_value左侧的join registration_rsvp_自定义_字段中选择rsvp id,GROUP_CONCAT(值分隔符“”)作为n(registration_rsvp_custom_field.id=registration_rsvp_field_value.field_id)左连接注册(registration_rsvp.id=registration_rsvp_field_value.rsvp_id),其中字段_id位于(1,2)中和form_id=1 groupby rsvp_i输出类似于这个rsvp_id的东西| n37 | Mark 38 | Dan 39 | John如果我按rsvp_id删除这个组,我只会得到一个名为concatedHey的列,看起来这和我之前的一样as n从注册\u rsvp\u字段\u值左连接注册\u rsvp\u自定义\u字段打开(注册\u rsvp\u自定义\u字段.id=注册\u rsvp\u字段\u值.field \u id)左连接注册\u rsvp打开(注册\u rsvp.id=注册\u rsvp\u字段\u值.rsvp\u id),其中字段\u id位于(1,2)如果我用rsvp|id移除组,我只会得到一个名为concated的列