Php 从具有计数和基于计数的条件的数据库中选择?

Php 从具有计数和基于计数的条件的数据库中选择?,php,mysql,Php,Mysql,我有一个包含用户相关数据的表,以及两个重要列: refered\u count,当在表中创建新条目时,将refered\u by列设置为该用户的user\u id,并将refered\u by更新,后者是引用他们的用户的user\u id 我想从表中选择在某个日期后具有最高推荐数量的用户 例如: 如果有3个用户,其中一个引用了其他2个(比如用户2和3),但是用户2在2014年12月2日被引用,而用户3在2015年1月3日被引用 如果截止时间为1/12/14,则返回用户1,并将refereu co

我有一个包含用户相关数据的表,以及两个重要列:

refered\u count
,当在表中创建新条目时,将
refered\u by
列设置为该用户的
user\u id
,并将
refered\u by
更新,后者是引用他们的用户的
user\u id

我想从表中选择在某个日期后具有最高推荐数量的用户

例如:

如果有3个用户,其中一个引用了其他2个(比如用户
2
3
),但是用户2在2014年12月2日被引用,而用户3在2015年1月3日被引用

如果截止时间为1/12/14,则返回用户1,并将refereu count设置为2,但如果截止时间在2/12/14之后,则返回用户1,并将refereu count设置为1

我一直在考虑如何做到这一点,但我想不出一个可行的方法。有办法吗

这是通过MySQL实现的

编辑:我想我可能需要提供一些信息


注册日期(
注册日期
)用作参考日期。我需要使用截止后引用的用户数更新引用计数,但是我需要获得实际用户。这是一个“顶级推荐人”表。我不明白为什么我在想办法这样做时遇到了这么多麻烦。

referel\u count
中获取最大值的行,并为您的
referel\u Date
设置日期条件,使其位于
certainDate
之后:

SELECT user_id FROM table WHERE refer_count = (SELECT MAX(refer_count) FROM table) AND referal_date>certainDate;
请注意,
其中
选择之前,因此它不会首先获得最高计数,但会使用日期条件进行过滤,然后获得最高计数

编辑:根据编辑的问题更新查询

SELECT user_id FROM usertable WHERE (referal_date BETWEEN '2014-12-2' AND CURDATE())ORDER BY refer_count DESC;
这是个粗略的想法。 不过,如果要将所有表都放在同一个表中,则应该考虑规范化表。最好将参考资料放在单独的表格中