获取一个字段的所有值都具有特定值的ID

时间:2014-04-18 11:51:08

标签: mysql sql

我有这张桌子

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值

4 个答案:

答案 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