我有以下两个表:
表名为评论
:
(一个ID可以存在多次)
该ID意味着,以下评论是针对具有该ID的用户进行的。
名为login_history
的表:
如何获取自用户倒数第二次登录以来的评论数量(一条评论由表 reviews
中的 id
表示)?
示例:
假设一个 id
19 的用户登录。当他登录时,一个新值将被插入到 login_history
中。这看起来像 2017-04-05 19:00:00, 19
。然后,对他的评论进行编辑,并且 modified
值发生更改。如果用户随后注销并重新登录,他应该会看到某种消息:“自您上次登录以来已编辑了 1 个新评论”。
这方面的困难部分是在运行查询之前将新行插入到 login_history
中,例如在用户访问“新评论”页面之前。
如何通过一条sql查询得到想要的结果?
编辑1:
表评论
的示例数据:https://hastebin.com/uhoyupuvem.sql
表 login_history
的示例数据:https://hastebin.com/ququzequsu.sql
最佳答案
第一:
查找上次登录日期(从 skayp 答案复制):
SELECT `for_date`
FROM `login_history`
WHERE `user` = 10
ORDER BY `for_date` DESC
LIMIT 1,1
然后使用此结果作为比较的一部分:
SELECT * FROM `test`.`reviews` WHERE `modified` > (SELECT `for_date`
FROM `login_history`
WHERE `user` = 10
ORDER BY `for_date` DESC
LIMIT 1,1)
因此,您拥有该用户在倒数第二次登录之前所做的所有修改。
关于mysql - 如何获取自倒数第二次登录以来更改的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232454/