使用GROUP_CONCAT时出错?

时间:2012-06-18 07:51:25

标签: php mysql

我有一个示例数据

mobile(id, name)
mobile(1, 'Nokia')
mobile(2, 'Samsung')
mobile(3, 'Motorola')

和类别

categories(id, name, mobile_id)
categories(1, 'mobile', '1,2,3')

和mysql:

SELECT cat.name as cat_name, GROUP_CONCAT(mobile.name) as mobile_name
FROM `mobile` as mobile
LEFT OUTER JOIN `categories` AS cat ON cat.mobile_id = mobile.id 

如何得到这个结果:

(1,"mobile","Nokia,Samsung,Motorola")

3 个答案:

答案 0 :(得分:1)

您应该尝试添加

GROUP cat.name
在您的查询结尾处

答案 1 :(得分:0)

您需要添加GROUP BY cat.id 因为GROUP_CONCATGROUP BY (Aggregate) Function

答案 2 :(得分:0)

您应创建一个新表'mobiles_categories',将手机与各自的类别相结合,如下所示:

mobile_category

  • id_category - id_mobile
  • 1 - 1
  • 1 - 2
  • 1 - 3
  • 2 - 1
  • 2 - 2

这样做可以简单地加入类别。