我可能想要不可能的事,但我们希望有可能。
因此,我想从用户的上次评论日期中获取所有较新的评论。
我认为不需要很多sql详细信息。
用于创建论坛主题(id,user_id,标题,内容,日期)的论坛数据库
评论数据库(id,user_id(发表评论的用户),forum_id(他评论到哪个论坛...等于论坛数据库中的id),日期)
任何帮助将不胜感激。
例如:评论数据库:
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,因为它们是对user_id 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,因为它比他对forum_id 2的评论新。
戈登的答案非常适合解决以下示例:
select c.*
from comments c
where c.datetime > (select max(c2.datetime)
from comments c2
where c2.user_id = ?
);
但这并不能解决另一个问题。如果用户在评论表中有最新评论,则此查询不会给出任何结果。但是很容易发生的是,给定的用户在其他论坛主题中也有评论,这些评论可能具有较新的答案。
答案 0 :(得分:1)
这是您想要的吗?
select c.*
from comments c
where c.datetime > (select max(c2.datetime)
from comments c2
where c2.user_id = ?
);
?
用于描述特定用户的参数。