【发布时间】:2013-07-09 19:24:31
【问题描述】:
我为此设置了一个典型的 MySQL 数据库:发布表、用户表、评论表。
查询诸如“获取我上次评论后有新 cmets 的评论的帖子”之类的最佳方式是什么?我无法确定如何将其他用户的comment_timestamp 大于我的comment_timestamp 条件合并到下面的查询中:
我大概有
SELECT * FROM posts
WHERE posts.id IN
( SELECT DISTINCT posts.id FROM posts,users,comments WHERE comments.post_id = post.id AND comments.user_id = $current_user_id ) AND .. something to filter only comments where timestamp is greater than mine
我意识到我可以遍历一组并在 MySQL 之外进行过滤,但如果可能的话,我更愿意在 MySQL 中完成所有操作。我知道通过加入可能有更好的方法来做到这一点,但我不知道如何在加入的两个部分中移动“我的”最后评论的comment_timestamp
user table
-----
id
posts table
------
id
user_id
comments table
-------
id
user_id
post_id
comment_timestamp
【问题讨论】:
-
请在您的问题中提供一些数据。
-
输入和输出数据。