【发布时间】:2019-01-09 12:54:51
【问题描述】:
我必须将一些数据导出到 Excel 文件。该数据来自一个名为“tb_Forms”的表,并在另一个名为“tb_Movement”的表中有多重关系,如下所示
+----------+----------+ | tb_Forms | | +----------+----------+ |表单 ID |说明 | | 1 | “表格 1” | | 2 | "表格 2" | | 3 | “表格 3” | +----------+----------+ +-----------------+---------------+--------------- ----+--------------+--------+---------- --+ | tb_运动 | | | | | | +-----------------+---------------+--------------- ----+--------------+--------+---------- --+ |运动标识 |第一个答案 |第二个答案 |回复日期 |用户Fk | FormsFk | | 1 | “Lorem Ipsum” | "dolor sat amet" | 2018-07-31 | 1 | 1 | | 2 | “结构” | “阿迪皮斯精英” | 2018-08-01 | 2 | 1 | +-----------------+---------------+--------------- ----+--------------+--------+---------- --+ +----------+----------+ | tb_用户 | | +----------+----------+ |用户名 |姓名 | | 1 |若昂席尔瓦 | | 2 |玛丽亚奥利维拉 | +----------+----------+我想找到一种方法来获得两个结果,例如:
结果 第一句话:“Lorem Ipsum”, 第二句话:João Silva 于 2018-07-31 发表的“dolor sit amet” 第一句话:“consectetur”, 第二条评论:玛丽亚·奥利维拉(Maria Oliveira)于 2018-08-01 发表的“adipiscing elit”但我只能得到第一个结果(João Silva),仅此而已。 这是我做的查询:
SELECT GROUP_CONCAT(CONCAT(
"First Remark: ", mv.FirstRemark,
"\rSecond Remark: ", mv.SecondRemark,
"\rin ", mv.ResponseDate, " by ",
(SELECT Name FROM tb_Users WHERE UserId = mv.UserFk)
) SEPARATOR ',')
FROM tb_Movement mv
WHERE mv.FormsFk = 1;
我已经试过了:
SET SESSION group_concat_max_len = 1000000;
..因为备注字段可能非常大,但这似乎不是解决方案。
我必须像这样连接所有答案,因为每个表单行也必须是 excel 中的唯一行。
【问题讨论】:
标签: mysql sql concat group-concat