2012-06-18 3 views
0

У меня есть образец данныхОшибка при использовании GROUP_CONCAT?

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

ответ

1

Вы должны попытаться добавить

GROUP cat.name 

в конце запроса

0

Вам нужно добавить GROUP BY cat.id , потому что GROUP_CONCAT является GROUP BY (Aggregate) Function.

0

Вы должны создать новую таблицу 'mobiles_categories', связывающих мобильные телефоны с их соответствующими категориями, например:

mobile_category

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

Сделав это, вы можете просто присоединиться к категориям.

Смежные вопросы