如何选择在过去2小时内未更新分数的用户或使用Mysql

时间:2015-05-26 11:49:40

标签: php mysql sql database database-design

我有以下2个表......

用户

user_id, name, age

user_score

score_id, user_id, score, date(timestamp)

user_score表应该记录每2小时更新一次的所有用户的所有分数。

因此,我需要获取所有用户ID的列表,这些用户ID在过去2小时或根本没有更新(对于新玩家)。我猜我将不得不使用INNER JOIN?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您需要left joinnot exists。您只需要过去两小时内没有活动的所有记录(这也包括新用户):

select u.*
from users u
where not exists (select 1 from user_score us
                  where u.user_id = us.user_id and
                        us.date >= date_sub(now(), interval 2 hour)
                 );