从用户的最新评论中选择更新的评论

csga3l58  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(269)

我可能想做不可能的事,但希望是可能的。
所以,我想从用户的最后一个评论日期中获取所有较新的评论。
我认为不需要太多sql细节。
用于创建论坛主题(id、用户id、标题、内容、日期)的论坛数据库
一个评论数据库(id,用户id(评论的用户),论坛id(他评论到哪个论坛。。。等于论坛数据库中的id),日期)
任何帮助都将不胜感激。
e、 g.:评论db:

id user_id forum_id date 
  1       1        1 2018-12-16 14:00:00
  2       2        1 2018-12-16 14:50:00
  3       1        1 2018-12-16 15:35:00
  4       5        1 2018-12-16 16:50:00
  5       2        1 2018-12-16 17:50:00

预期结果:假设我们想要用户1的上一条评论中所有较新的评论,所以结果应该是id 4和id 5,因为它们是用户1的较新评论。
另一个例子:

id user_id forum_id date
  1       1        2 2018-12-16 18:10:00
  2       3        2 2018-12-16 19:25:00
  3       1        1 2018-12-17 10:00:00

预期结果:我们仍然需要来自用户1的所有较新评论。结果应该是id 2,因为它比他在论坛id 2上的评论要新。
gordon的答案非常适合解决第一个例子:

select c.*
from comments c
where c.datetime > (select max(c2.datetime)
                from comments c2
                where c2.user_id = ?
               );

但这并不能解决另一个问题。如果用户在注解表中有最新的注解,则此查询不会给出任何结果。但这很容易发生,给定的用户在其他论坛主题中也有评论,这些评论可能有更新的答案。

vlurs2pr

vlurs2pr1#

这就是你想要的吗?

select c.*
from comments c
where c.datetime > (select max(c2.datetime)
                    from comments c2
                    where c2.user_id = ?
                   );
``` `?` 用于描述特定用户的参数。

相关问题