我正在尝试编写一个查询,例如
if (select count(*) from Users where fkId=5000 and status='r') =
(select count(*) from Users where fkId=5000) then ..
在一个查询中。
这意味着,如果所有具有 fkId=5000 的行也有status=r
,那么做一些事情。
可以有任意数量的行fkId=5000
,并且这些行的任何部分都可以有status=r
, status=k
,status=l
等status=a
。我对所有行fkId=5000
也有status=r
(而不是任何其他状态)的情况感兴趣。
我现在的做法是
how many rows with id=5000 and status = 'r'?
how many rows with id=5000?
are those numbers equal? then ..
我试图弄清楚如何仅使用 1 个查询而不是 2 个来重写此查询。关键字ALL似乎无法编写这样的查询(<> ALL
相当于NOT IN
)。我尝试了几种GROUP BY
配方,但无法获得正确的结果。