区分不工作的MySQL

时间:2017-04-26 18:38:48

标签: mysql

我在基本查询中有这种奇怪的行为。

将此视为推特提要,我试图从用户关注的十个不同的人那里获取最后一个操作。

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

然而,这会返回以下内容(执行明显不明显):

enter image description here

我也尝试过分组,但由于顺序,它也会返回不需要的数据。 为什么呢?

我不能使用GROUP BY,因为ORDER BY会返回错误的数据。

此时查询返回此信息:

enter image description here

但是我希望每个用户只能获得一个操作,正如您在上面的屏幕截图中看到的那样,我应该在结果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

返回:

enter image description here

1 个答案:

答案 0 :(得分:0)

select distinct为您提供不同的行。如果您只是在查找每个perform_by_user_id中的一个,那么您将使用一个分组。