带有 GROUP_CONCAT 和 CONCAT 的子查询返回 STILL 多于 1 行,错误 1242

Posted

技术标签:

【中文标题】带有 GROUP_CONCAT 和 CONCAT 的子查询返回 STILL 多于 1 行,错误 1242【英文标题】:Subquery with GROUP_CONCAT & CONCAT returns STILL more than 1 row, Error 1242 【发布时间】:2021-07-14 16:55:19 【问题描述】:

我得到这个错误:

“错误 1242 超过 1 行”

即使我已经使用 group_concat ..

这是我的查询,它给了我错误

SELECT 
`coms_participant_exam_event`.`coms_exam_event_id` AS PEE_ID,
(SELECT GROUP_CONCAT((SELECT CONCAT(`bpmspace_coms_v1`.`state`.`name`," (",`coms_participant_exam_event`.`state_id`,") ",  count(`coms_participant_exam_event`.`state_id`))  
FROM `coms_participant_exam_event`
JOIN `bpmspace_coms_v1`.`state` ON
    (
            `bpmspace_coms_v1`.`state`.`state_id` =
            `bpmspace_coms_v1`.`coms_participant_exam_event`.`state_id`
    )
where `coms_exam_event_id` = `coms_participant_exam_event`.`coms_exam_event_id`
group by `bpmspace_coms_v1`.`coms_participant_exam_event`.`state_id`) , ','))
FROM `coms_participant_exam_event`
group by `coms_participant_exam_event`.`coms_exam_event_id`

当我用一个 id “硬编码”coms_exam_event_id 时,它只有 1 行,因为它正在工作 - 不知道为什么 GROUP_CONCAT 不够

SELECT 
`coms_participant_exam_event`.`coms_exam_event_id` AS PEE_ID,
(SELECT GROUP_CONCAT((SELECT CONCAT(`bpmspace_coms_v1`.`state`.`name`," (",`coms_participant_exam_event`.`state_id`,") ",  count(`coms_participant_exam_event`.`state_id`))  
FROM `coms_participant_exam_event`
JOIN `bpmspace_coms_v1`.`state` ON
    (
            `bpmspace_coms_v1`.`state`.`state_id` =
            `bpmspace_coms_v1`.`coms_participant_exam_event`.`state_id`
    )
where `coms_exam_event_id` = 877523
group by `bpmspace_coms_v1`.`coms_participant_exam_event`.`state_id`),','))
FROM `coms_participant_exam_event`
group by `coms_participant_exam_event`.`coms_exam_event_id`

感谢您的帮助 抢

【问题讨论】:

【参考方案1】:

在 group_concat 中似乎不允许计数。 我用“select concat ... count ... part”创建了一个 HELP VIEW,然后从视图中做了 group_concat ...

【讨论】:

以上是关于带有 GROUP_CONCAT 和 CONCAT 的子查询返回 STILL 多于 1 行,错误 1242的主要内容,如果未能解决你的问题,请参考以下文章

带有 LEFT JOIN 和 IF 语句的有限 GROUP_CONCAT

带有 ORDER BY 的 HIVE GROUP_CONCAT

在带有函数的 MySQL GROUP_CONCAT 中排序

在带有 LIKE 的 CASE 语句中使用 GROUP_CONCAT 列别名

MariaDB:带有子查询的 group_concat 失败

MySQL:带有 ORDER BY COUNT 的 GROUP_CONCAT?