如何从另一个计数结果中减去一个计数结果以满足mysql中的where子句?

尼克马夫

有没有一种办法,包括在最后一个子查询的IF语句(或其他地方是否更适合),以排除行正在对数类标识码 如果有相应的0在同一个表的列出席?

我想做的是,如果有6个人预订了一个班级(最大人数为6人),但在班级之前取消了1个人-我希望结果为5,从而显示该班级有空(为什么Im指望班级ID,而不是出勤字段)

SELECT c.*
FROM classes c
WHERE c.location_id = :location_id
AND (c.level_id = :current_level OR c.level_id = :previous_level OR c.level_id = :next_level)
AND c.datetime BETWEEN CURDATE() AND ADDDATE(CURDATE(),INTERVAL 14 DAY)
AND (c.class_id NOT IN (
     SELECT class_id 
     FROM swimmer_classes) 
     OR c.class_id IN (
                       SELECT class_id 
                       FROM swimmer_classes 
                       GROUP BY class_id 
                       HAVING COUNT(class_id) < 6))"

更新1

swimmer_classes模式

swimmer_class_id   swimmer_id    class_id   attendance
1                  1             1          null           
2                  2             1          null
3                  3             1          null
4                  4             1          null
5                  5             1          null
6                  6             1          0

结果:Count(class_id)= 6

要求的输出

根据以下伪代码,所需计数= 5

 Count(class_id) - Count(attendance of class_id) = 5 
马特

这样的事情在您的情况下可行吗?

SELECT class_id 
FROM swimmer_classes
WHERE attendance <> 0 OR attendance is NULL
GROUP BY class_id 
HAVING COUNT(class_id) < 6

或者,更long的:

SELECT class_id FROM 
(
    SELECT class_id, count(*) as cnt
    FROM swimmer_classes
    WHERE attendance <> 0 OR attendance is NULL
    GROUP BY class_id 
) t
where t.cnt < 6

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL子查询来计数用户在另一个表中的结果是sloooooooow

在MySQL中计数两个表,并根据另一个表中的日期显示结果

如何在MySQL中将一个查询结果减去另一个查询

如何使用一个表中的值来计数另一表中的结果?

将列中的数组与另一个查询的计数结果相乘

SQL:根据另一个表的计数结果更新一个表中的列

如何在不同列中的一个表中显示mysql计数结果?

MYSQL-一个SELECT减去另一个SELECT的返回结果

如何从Oracle中的另一个表获取一个表的ID计数

对记录在另一个表中的投票满足条件的记录进行计数

如何从一个表返回所有结果并结合另一个表的特定字段的计数?

如果满足两个条件(一个在 WHERE 子句中,另一个在 HAVING 子句中)中的任何一个,则选择行

基于另一个计数进行计数-MySQL

Django从另一个表的另一个字段中减去一个字段并保存结果

从SQL中的另一个表计数事件

另一个表中的 SQL 计数列

如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

如何使用一个mysql查询的结果并在php中的另一个查询中使用它?

使用NOT IN的另一个表中的WHERE子句

如何根据mysql中的另一个表对结果进行排序

如何基于另一个表的结果在MySQL中循环插入记录

如何从MySQL中的另一个选择结果中进行选择?

MYSQL-在一个查询中具有不同where子句的不同计数

如何从另一个刻度中减去刻度

如何更好地计算另一个列表中列表的出现次数,然后使用计数列出每个元素的结果

如何创建一个计数函数来对另一个函数中一个序列中的数字进行计数?

在另一个查询的计数行中基于WHERE条件

如何通过另一个DF中的计数删除一个DF中的行?

如何从数组中获取随机结果,然后根据该结果从另一个数组中获取另一个随机结果?