在两个表中选择两列(两个表中的一列相同)

时间:2013-02-15 19:09:40

标签: mysql

我有两个表 - 类别和子类别,它们都有id_category 换句话说,在类别

id_category: 3
category_name: Security

子类别

id_subcategory: 1
id_category: 3
subcategory_name: Antivirus

我在同一类别中有多个项目,所以我希望它列出这样的项目:
安全性:防病毒,间谍软件,防火墙。

另外,我希望它与其他类别一样,所以最后会列出如下:
安全性:防病毒,间谍软件,防火墙 多媒体:音频,视频,图像。

我不知道该怎么做。我四处搜寻并尝试了不同的东西,但没有任何对我有用。

1 个答案:

答案 0 :(得分:2)

您可以使用GROUP_CONCAT汇总功能:

SELECT
  category_name,
  GROUP_CONCAT(subcategory_name)
FROM
  category INNER JOIN subcategory
  ON subcategory.id_category=category.id_category
GROUP BY
  category_name

请参阅小提琴here