这是漫长的一周,我的大脑疲惫不堪。
我有一个包含三个表的数据库:
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分配给零类别的联系人。
答案 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
字段)