0

我有一个样本数据

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")
4

3 回答 3

1

你应该尝试添加

GROUP cat.name

在您的查询结束时

于 2012-06-18T07:54:47.007 回答
0

您需要添加GROUP BY cat.id ,因为GROUP_CONCAT它是一个GROUP BY (Aggregate) Function.

于 2012-06-18T07:55:26.330 回答
0

您应该创建一个新表“mobiles_categories”,将手机与其各自的类别耦合,如下所示:

mobile_category

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

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

于 2012-06-18T07:55:36.690 回答