2016-11-30 35 views
0

我有一個主數據庫「文章」(artID,artName)的MySQL數據庫。MySQL與查詢關係從文章表到類別

我還有一個帶有真正標題和id(catID,catTitle)的「categories」的表。

然後在那裏存在表「articles_categories」中存儲的連接ID(artID,catID)。

經過一些關於MySQL的學習......我得到了至少正確的相關行。

但是,有可能文章有多於一個類別。

表articles_categories例如可以具有行:

artID,catID 

0001,0100 
0001,0105 
0001,0120 

0002,0104 
0002,0120 

0003,0110 

0004,0205 
0004,0250 
0004,0401 

而這正是我不幸拿到。我得到的每篇文章更多的是1類連接多於1行。

但我想爲每篇文章只有1行和單個字段中用分號分隔的類別。

這就是我得到:

Article, Category 
"apple", "fruit" 
"apple", "food" 
"pepsi","drink" 
"pepsi","nonalcolic" 
"pepsi","softdrink" 
"chair","wood" 
"chair","furniture" 
"chair","kitchen" 

但是,這是我想:

Article, Category 
"apple", "fruit, food" 
"pepsi","drink, nonalcolic, softdrink" 
"chair","wood, furniture, kitchen" 

這裏是我的SQL查詢:

SELECT a . * , ac . * , c . * 
FROM articles a, articlescategories ac, categories c 
WHERE a.artID = ac.artID AND ac.catID = c.catID 
+0

你可以給我一些樣品數據的文章和類別表在sqlfiddle? – Faisal

回答

0

您需要使用group_concat

SELECT a . * , GROUP_CONCAT(c.category_name) 
FROM articles a, articlescategories ac, categories c 
WHERE a.artID = ac.artID AND ac.catID = c.catID 
GROUP BY a.artID 

category_name是您的類別名稱。你必須改變你的類別名稱