2012-06-18 38 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_CONCATGROUP BY (Aggregate) Function

0

您應該創建一個新表 'mobiles_categories' 的手機連接到各自的類別,比如:

mobile_category

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

這樣做,您可以簡單地加入類別。