我有一个MySQL数据库,主表为“articles”(artID,artName)。
我还有一个包含真实标题和id(catID,catTitle)的“类别”的表格。
然后是表格“articles_categories”,其中存储了连接ID(artID,catID)。
在了解了一些MySQL之后......我至少得到了正确的相关行。
但是,文章可能有超过1个类别。
表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 QUERY:
SELECT a . * , ac . * , c . *
FROM articles a, articlescategories ac, categories c
WHERE a.artID = ac.artID AND ac.catID = c.catID
答案 0 :(得分: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 是您的类别名称。您必须使用类别名称
更改此设置