mySql查询高于上一个用户评论

时间:2016-10-10 09:31:13

标签: mysql

我有下表:

 id  post_id    user_id   to_user_id    date time
---- ---------- --------  ------------  ------
  1    100         1           2        10:00
  2    100         1           2        10:30
  3    100         2           2        11:00
  4    100         5           2        11:30
  5    100         8           2        11:45
  6    105         10          50       09:00
  7    105         2           50       09:30
  8    105         11          50       11:00
  9    105         30          50       11:30
  10   105         32          50       11:45

在下表中,您可以看到user_id 2包含对帖子100和105的评论。 我只需要获得每个post_id的记录,而不是他写的第一条评论。

因此,对于此示例,结果将是针对帖子100的记录4和5以及针对帖子105的8,9,10,因为4,5大于3(user_id 2的第一记录) 并且8,9,10大于7(user_2第一条评论)

明确预期结果:

id  post_id    user_id   to_user_id    date time
4    100         5           2        11:30
5    100         8           2        11:45
8    105         11          50       11:00
9    105         30          50       11:30
10   105         32          50       11:45

1 个答案:

答案 0 :(得分:1)

可以使用子选择和聚合函数

select * from my_table 
where ( post_id, date_time) >  (select post_id, max( date_time) 
                      from my_table where user_id =2
                      group  y post_id);

或者如果元组版本没有正常工作,请尝试

select * from my_table as m 
inner join (select post_id, max( date_time) 
                      from my_table where user_id =2
                      group  y post_id ) t on m.post_id = t.post_id
where m.date_time > t.date_time