次のようなクエリを作成しようとしています
if (select count(*) from Users where fkId=5000 and status='r') =
(select count(*) from Users where fkId=5000) then ..
たった1 つのクエリで。
これが意味することは、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 ..
このクエリを 2つで<> ALL
はなく 1 つのクエリだけを使用して書き直す方法を見つけようとしていますNOT IN
。いくつかの処方を試しましたGROUP BY
が、正しい結果が表示されませんでした.