【问题标题】:MySQL - Group BY GROUP_CONCATMySQL - 按 GROUP_CONCAT 分组
【发布时间】:2023-03-26 00:02:01
【问题描述】:

我有以下疑问:

SELECT
     issue.`sequence` AS issue_sequence,
     issue.`description` AS issue_description,
     GROUP_CONCAT(DISTINCT(issue_category.`name`) SEPARATOR ', ') AS issue_category_name,
     GROUP_CONCAT(DISTINCT(approach.`name`) SEPARATOR ', ') AS approach_name,
     issue_approach.`issue_id` AS issue_approach_issue_id,
     issue_approach.`approach_id` AS issue_approach_approach_id
FROM
     `approach` approach 
     INNER JOIN `issue_approach` issue_approach ON approach.`id` = issue_approach.`approach_id`
     INNER JOIN `issue` issue ON issue_approach.`issue_id` = issue.`id`
     INNER JOIN `project` project ON issue.`project` = project.`id`
     INNER JOIN `tenant` tenant ON project.`tenant_id` = tenant.`id`
     INNER JOIN `issue_category` issue_category ON project.`id` = issue_category.`project`
     INNER JOIN `user` user ON tenant.`id` = user.`tenant_id`
WHERE user.id = 1 AND project.id = 1
GROUP BY issue_category_name
ORDER BY issue_category.`name`, issue.`sequence`

我对这条线有疑问:

GROUP BY issue_category_name

显然,MySQL 似乎无法按 GROUP_CONCAT 结果的别名进行分组。 我不是真正的 SQL 专家,但有没有办法可以使用 GROUP_CONCAT 的结果进行分组?

样本数据;

类别:网络、服务器 问题 ID:1 描述:一些描述 方法:解决问题的一些方法。

基本上,一个问题可以属于一个或多个类别。我为每个问题连接类别。我想要做的是按类别连接的结果对结果进行分组。例如,类别为网络、服务器的组问题。

谢谢。

【问题讨论】:

  • 错误信息说什么?
  • 查询应该做什么?您能否用文字描述或提供示例数据和想要的输出?
  • 那没有任何意义。你的目标是什么?

标签: mysql sql group-by aggregate group-concat


【解决方案1】:

我不是 MySQL 用户,但将您的组更改为

 Group By GROUP_CONCAT(DISTINCT(issue_category.`name`) SEPARATOR ', ')

【讨论】:

    【解决方案2】:

    参考SQL EXECUTION ORDER,这不起作用的原因是因为 select 语句是要执行的最后一条语句,因此 sql 引擎在将记录分组时不会知道您的列别名,因为 GROUP BY 发生在 SELECT 之前.因此,正如 Charles Bretana 的回答所暗示的,放

    Group By GROUP_CONCAT(DISTINCT(issue_category.`name`) SEPARATOR ', ')
    

    在您的 group by 子句中。这样就可以正常工作了。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2013-07-18
      • 2012-09-19
      • 2011-01-31
      • 2013-03-28
      • 2016-11-23
      相关资源
      最近更新 更多