我在基本查询中有这种奇怪的行为。
将此视为推特提要,我试图从用户关注的十个不同的人那里获取最后一个操作。
select DISTINCT performed_by_user_id, action_id from z_follows, actions
WHERE user_id_following = 1 and z_follows.follower_id = actions.performed_by_user_id
ORDER BY action_id DESC
LIMIT 10
然而,这会返回以下内容(执行明显不明显):
我也尝试过分组,但由于顺序,它也会返回不需要的数据。 为什么呢?
我不能使用GROUP BY,因为ORDER BY会返回错误的数据。
此时查询返回此信息:
但是我希望每个用户只能获得一个操作,正如您在上面的屏幕截图中看到的那样,我应该在结果2,236,685中看到以下用户ID但是此查询:
select performed_by_user_id, action_id from z_follows, actions
WHERE user_id_following = 1 and z_follows.follower_id = actions.performed_by_user_id
GROUP BY performed_by_user_id
ORDER BY action_id DESC
LIMIT 10
返回:
答案 0 :(得分:0)
select distinct为您提供不同的行。如果您只是在查找每个perform_by_user_id中的一个,那么您将使用一个分组。