如何显示包含mysql中项目的类别列表

时间:2015-11-09 08:20:50

标签: php mysql

我想问一下如何显示包含项目的类别列表。不应显示没有从其他表链接的项目的类别。 此外,应根据项目数显示类别。

请考虑两个表:

   |------- categorytbl----|
   cat_id  |    cat_name
    1      |    Pet
    2      |    Person
    3      |    Places
   -------------------------

   |------ itemstbl -----|
    item_id      item_description     cat_id
     1                John              2
     2                Peter             2
     3                 Cat              1

如果我要查询上表,输出应为:

宠物(1),人(2)

而且,我不应该包含Places类别,因为它不包含任何项目。

我尝试了我的查询:

   SELECT * FROM categorytbl a, itemstbl b WHERE a.cat_id=b.cat_id

1 个答案:

答案 0 :(得分:3)

您需要从两个表中选择所有元素并将其连接起来,这样您才能获得双方匹配的结果

SELECT cat_name, COUNT(item_id) AS items_count 
FROM categorytbl AS cat
INNER JOIN itemstbl AS item ON cat.cat_id = item.cat_id
GROUP BY cat.cat_id
ORDER BY items_count DESC

为了更好地理解JOIN在SQL中的工作方式,请查看以下图片:

enter image description here

但正如其他人所说,阅读您正在使用的RDBMS的相关文档或SQL教程,这将有助于您掌控它。