我有以下查询:
SELECT DISTINCT user.user_id
FROM (post INNER JOIN user ON user.user_id = post.user_id)
WHERE post.red_flag = 0 AND post.approved = 1
AND user.official = 1
AND post.activity_date >= '2012-01-13'
ORDER BY post.activity_date DESC LIMIT 6
我正在尝试在过去30天内获得官方用户的最新帖子。
问题似乎是查询正在查找user_id的第一个不同值并使用附加到该行的日期。它以无特定顺序遍历表,查找user_id 15并将其标记为唯一。然后传递user_id为15的每个其他记录。我想要的最新日期记录是传递的记录。
如何让它返回最新的不同帖子?
答案 0 :(得分:1)
您没有选择帖子,而是从表user
中选择user_id。
在不知道你的表格结构的情况下,我猜你需要这样的东西:
SELECT post.id FROM post LEFT JOIN user
ON user.user_id = post.user_id
WHERE post.red_flag = 0
AND post.approved = 1
AND user.official = 1
AND post.activity_date >= '2012-01-13'
GROUP BY post.user_id
ORDER BY post.activity_date DESC
LIMIT 6
我添加了一个GROUP BY
子句,因为您似乎只想为每个用户返回一个帖子。