我有两个表:用户和照片。

用户有很多照片。照片有一个名为user_id的列,照片有一个用户。照片也有一个名为report的列,它是0或1。

我需要知道至少报告了1张照片的用户数量=1。我还需要知道至少报告了2张照片的用户数量。

我该怎么做?这是我想做的,但是显然不起作用:

select count(*)
from users join
 (select * from photos where photos.reported = 1) as p2
 on users.photo_id = p2.id;

最佳答案

只需获得计数的直方图:

select numreported, count(*), min(user_id), max(user_id)
from (select p.user_id, sum(p.reported = 1) as numreported
      from photos p
      group by p.user_id
     ) p
group by numreported
order by numreported;


这使您拥有所有numreported计数(包括0)的用户数。

关于mysql - 在SQL where子句中比较计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27431256/

10-11 17:34