【问题标题】:MySQL Group and Concat multiple columnsMySQL Group 和 Concat 多列
【发布时间】:2011-06-30 12:44:28
【问题描述】:

我必须从 MySQL 数据库中添加两个或多个字符串,为此我使用了CONCAT() 函数。

这是第一个表 classes,它存储 PHP 类。

class_id  class_name
--------  ----------
       1  accountant
       2  attendance

另一个表methods 存储每个类的方法。

class_id  method_name            
--------  -----------------------
       1  __construct            
       1  add_expenses

       2  __construct            
       2  attendance_report

我编写了连接查询。

SELECT 
  `cc`.`class_id`,
  `cc`.`class_name`,
  CONCAT(`cm`.`method_name`, ',') AS `method_name` 
FROM
  `classes` AS `cc` 
  LEFT JOIN `methods` AS `cm` 
    ON `cm`.`class_id` = `cc`.`class_id` 
GROUP BY `cc`.`class_name`;

这不起作用。我的预期输出是

class_id  class_name      method_name 
--------  --------------  ------------
       1  accountant      __construct, add_expenses, .... n
       2  attendance      __construct, attendance_report, .... n

有什么想法吗?

【问题讨论】:

    标签: mysql join group-by concat group-concat


    【解决方案1】:

    使用

    GROUP_CONCAT

    而不是

    CONCAT

    GROUP_CONCAT(cm.method_name) 您不需要传递逗号作为默认分隔符。

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 2019-02-11
      • 2014-11-22
      • 1970-01-01
      • 2013-09-27
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多