带有 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
在带有 LIKE 的 CASE 语句中使用 GROUP_CONCAT 列别名