用于计算联系人所属类别数的SQL查询

时间:2011-04-22 10:53:28

标签: mysql sql

这是漫长的一周,我的大脑疲惫不堪。

我有一个包含三个表的数据库:

  • contacts
  • contacts_categories
  • contacts_categories_join

有各种类别,联系人可以属于某个类别,许多类别或无属性。 contacts_categories_join的结构是:

id INT UNSIGNED PRIMARY_KEY AUTO_INCREMENT
contact_id INT UNSIGNED
category_id INT

非常简单。

我想要的是一种计算联系人所属类别数量的方法,给定ID。

编辑:我使用GROUP BY列上的COUNT声明了category_id声明,但不幸的是,这不会返回ID分配给零类别的联系人。

1 个答案:

答案 0 :(得分:4)

SELECT COUNT(*)
  FROM contacts_categories_join
 WHERE contact_id = ID

ID是给定的ID。

如果您询问了所有联系人(但问题并不明显),那么:

   SELECT c.id,
          COUNT(j.contact_id)
     FROM contacts c
LEFT JOIN contacts_categories_join j ON j.contact_id = c.id
 GROUP BY c.id

(假设您的contact表格有id字段)