这是漫长的一周,我的大脑很疲惫。
我有一个包含三个表的数据库:
联系人
联系人类别
contacts_categories_join
有多种类别,联系人可以属于一个类别、多个类别或不属于任何类别。 contacts_categories_join
的结构是:
id INT UNSIGNED PRIMARY_KEY AUTO_INCREMENT
contact_id INT UNSIGNED
category_id INT
非常简单。
在给定 ID 的情况下,我所追求的是一种计算联系人所属类别数量的方法。
编辑: 我在 category_id
列上使用了 COUNT
的 GROUP BY
语句,但不幸的是,这不会返回分配给零类别的联系人 ID。
最佳答案
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
字段)
关于mysql - SQL查询以计算联系人所属类别的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5754696/