我有这张桌子
f_id | user_id | sent
==============================
1 | 1 | 0
1 | 2 | 1397820533
1 | 3 | 0
1 | 4 | 1397820533
2 | 1 | 1397820533
2 | 2 | 1397820533
2 | 3 | 1397820533
3 | 1 | 1397820533
3 | 2 | 1397820533
现在我希望所有
f_id
字段都有一个时间戳(!=0)SELECT * FROM table WHERE sent != 0 GROUP BY f_id
返回所有三个,因为有些有时间戳。
一个我期待的结果
f_id
=====
2
3
因为
sent
仍然有一些0值 最佳答案
您已接近,但要将条件移到having
子句:
SELECT f_id
FROM table
GROUP BY f_id
HAVING SUM(sent = 0) = 0;
having
子句用sent = 0
计算行数。= 0
表示没有它们。