mysql - SQL查询以计算联系人所属类别的数量

标签 mysql sql

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

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

  • 联系人
  • 联系人类别
  • contacts_categories_join

有多种类别,联系人可以属于一个类别、多个类别或不属于任何类别。 contacts_categories_join 的结构是:

id INT UNSIGNED PRIMARY_KEY AUTO_INCREMENT
contact_id INT UNSIGNED
category_id INT

非常简单。

在给定 ID 的情况下,我所追求的是一种计算联系人所属类别数量的方法。

编辑: 我在 category_id 列上使用了 COUNTGROUP 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/

相关文章:

python - 使用 mysql 占位符从 sql 表中选择时出错

php - 如何在mysql中设置money的数据类型

php - 发送带有消息主题和正文的图像(可选)?

mysql - 计算不同列值出现一列的次数? [甲骨文]

SQL 慢速空间数据

sql - 通过 R 连接到 Azure SQL

php - mysql 我不明白这里的 if 含义

mysql - 更新错误 - 主键值相同

c# - 从 2 个表中 SELECT 到 dataGridView 时出现 GROUP BY 问题

mysql - sql - 两列的计数