如何将表B中的记录计数放在表A中每行名称旁边

时间:2011-06-28 20:42:07

标签: php mysql

我试图理解这个问题有很多问题,请原谅我最有可能重复的问题。

我有2个表,一个称为“类别”,另一个称为“项目”。 “items”中的每一行都有一个category_id字段,该字段与“category”表中的category_id字段相匹配。

在一个mysql语句中,我想获取“items”中每个category_id的行计数,还要检索“category”中的category_name,这样我就可以打印出这样的类别列表:

  • Foo(3)
  • Bar(1)
  • Duh(6)

到目前为止,我在这里找到的问题似乎只是从“items”返​​回category_id,所以结果看起来像这样:

  • 1(3)
  • 2(1)
  • 3(6)

请?我确信它可以在一个mysql语句中完成,到目前为止,我不得不求助于两个单独的查询,其唯一目的是获取那个小数字。

1 个答案:

答案 0 :(得分:1)

这对你有用;

SELECT c.name AS theName, COUNT(i.id) AS theCount
FROM category AS c JOIN items AS i ON i.category_id = c.id
GROUP BY i.category_id

//修改

对不起,我应该解释一下。

Select抓取类别名称和项目数。

From正在进行将项目和类别绑定在一起的连接。

Group By确保类别ID是查询中的唯一内容。