查找状态为0的ID

时间:2018-09-07 09:21:20

标签: mysql sql

我需要一个查询,该查询将带回所有仅状态为0的rg_id。例如,rg_id 7和23的状态为0和1,因此我不希望它们包含在结果中。 / p>

enter image description here

5 个答案:

答案 0 :(得分:4)

尝试分组依据:

select id, sum(status)
from tablename
group by id
having sum(status)=0

答案 1 :(得分:0)

如果您只有not exists0状态,我会使用1

select t.*
from table t
where t.status = 0 and
      not exists (select 1 from table t1 where t1.rg_id = t.rg_id and t1.status = 1);

其他选择是使用group by子句:

select rg_id
from table t
group by rg_id
having min(status) = max(status) and min(status) = 0;

答案 2 :(得分:0)

不与条件聚合一起使用

select * from t where
 rg_id not in(   select rg_id 
                  from t 
                  where status in (0,1)
                  group by rg_id
                 having count(distinct status)=2 
                    )

答案 3 :(得分:0)

通过使用status0,可以确保每个组中的所有having值都没有sum之外的其他值:

select `rg_id` 
from `tbl`
group by `rg_id`
having sum(`status` <> 0) = 0

答案 4 :(得分:0)

如果您只想要0(非id分别为0和1),请使用减号

从状态为0的表1中选择ID 减去 从状态为1的表1中选择ID