我有这张桌子
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
的所有 sent
字段都有时间戳(!= 0)
SELECT * FROM table WHERE sent != 0 GROUP BY f_id
返回所有三个因为有一些有时间戳。
我期待的结果
f_id
=====
2
3
原因f_id
仍然有一些0值
答案 0 :(得分:4)
您已接近,但您希望将条件移至having
子句:
SELECT f_id
FROM table
GROUP BY f_id
HAVING SUM(sent = 0) = 0;
having
子句使用sent = 0
计算行数。 = 0
表示没有。
答案 1 :(得分:0)
SELECT Distinct f_id
FROM table
WHERE sent >= 0
答案 2 :(得分:0)
试试这个:
select *
from
(SELECT *
FROM table
WHERE sent != 0) tempalias
GROUP BY f_id
答案 3 :(得分:0)
试试这个 SELECT * FROM表 WHERE f_id不在(从发送的表中选择f_id = 0) GROUP BY f_id