我可能想做不可能的事,但希望是可能的。
所以,我想从用户的最后一个评论日期中获取所有较新的评论。
我认为不需要太多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 = ?
);
但这并不能解决另一个问题。如果用户在注解表中有最新的注解,则此查询不会给出任何结果。但这很容易发生,给定的用户在其他论坛主题中也有评论,这些评论可能有更新的答案。
1条答案
按热度按时间vlurs2pr1#
这就是你想要的吗?