gpt4 book ai didi

MySQL - 如何根据另一个表中的条件计算一个表中的条目(何时除外)

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:29 25 4
gpt4 key购买 nike

我正在尝试做一件简单的事情但失败了...

基本上我想根据一些值检查一个表中存在多少条目,与另一个表中的条目进行比较,并根据此比较计算第一个表的总条目数。

SELECT COUNT(*) 
FROM contacts c
INNER JOIN projects p ON p.ContactId = c.ContactId
WHERE c.TypeofContactId = '2'
AND p.CategoryId NOT IN (2,5)

这是什么意思?我有 2 个表,一个是我与客户的联系方式,另一个是基于这些联系方式创建的项目。

c.TypeofContactId 是联系人的类型(电话、电子邮件等)

p.CategoryId 是创建的项目类型。可以有 50 种类型。

项目根据 ContactId“附加”到联系人。

我想计算为特定类型完成的所有联系人,但仅当项目类别不是 2 或 5 时。(所以其他...)

因此,如果它找不到 c.type = 2 的任何项目(不是 2 或 5 类型),我应该得到 0 个计数。

我做错了什么?

谢谢。

最佳答案

你可以这样做:

SELECT SUM(CASE WHEN p.CategoryId NOT IN (2,5) THEN 1 ELSE 0 END) AS TotalCount 
FROM contacts c
INNER JOIN projects p ON p.ContactId = c.ContactId
WHERE c.TypeofContactId = '2'

当您将 p.CategoryId NOT IN (2,5) 放在 where 子句中时,您将只获得符合此条件的那些行。

关于MySQL - 如何根据另一个表中的条件计算一个表中的条目(何时除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46382966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com