Php 根据日期计算年龄,并与比赛结果进行匹配以进行排序

Php 根据日期计算年龄,并与比赛结果进行匹配以进行排序,php,mysql,Php,Mysql,我正试图在一个旧网站上添加一个新页面,一个记录页面,显示哪些玩家在一定年龄时赢得了最多的钱或赢得了比赛 用户表如下所示 *********************************** | id | name | age | bday | | 1 | bob | 15 | 2000-07-30 | | 2 | john | 14 | 2001-07-30 | | 3 | mary | 13 | 2002-07-30 | **********

我正试图在一个旧网站上添加一个新页面,一个记录页面,显示哪些玩家在一定年龄时赢得了最多的钱或赢得了比赛

用户表如下所示

***********************************
| id | name   | age  | bday       |
| 1  | bob    | 15   | 2000-07-30 |
| 2  | john   | 14   | 2001-07-30 |
| 3  | mary   | 13   | 2002-07-30 |
***********************************
race_结果表如下所示

************************************************************
| id | raceid | userid | place | winnings | date           |
| 1  | 1      | 1      | 1     | 1000     | 2006-04-10     |
| 2  | 1      | 2      | 5     | 50       | 2005-02-15     |
| 3  | 1      | 3      | 6     | 50       | 2010-06-12     |
| 4  | 2      | 1      | 1     | 1000     | 2009-05-29     |
| 5  | 2      | 2      | 3     | 250      | 2003-01-12     |
************************************************************
最实用的查询方法是什么,计算Bob 3岁时的年份范围,并将其与竞赛结果表匹配,以查看他在该特定日期范围内获得第一名的次数

选择计数(*)
SELECT COUNT(*)
    FROM 'race_results'
    INNER JOIN 'user' on user.id = race_results.userid
    WHERE user.name = 'bob'
        AND race_results.place = 1
        AND race_results.date >= ADDDATE(user.bday, INTERVAL 3 YEAR)
        AND race_results.date <  ADDDATE(user.bday, INTERVAL 4 YEAR);
来自“比赛结果” user.id=race\u results.userid上的内部联接“user” 其中user.name='bob' 和race_results.place=1 和race_results.date>=ADDDATE(user.bday,间隔3年) 和race_results.date
要获得所有3岁的第一名选手的名单,以及他们赢得多少次冠军,不仅仅是“鲍勃”

SELECT user.name, COUNT(*)
    FROM 'race_results'
    INNER JOIN 'user' on user.id = race_results.userid
    WHERE race_results.place = 1
        AND race_results.date >= ADDDATE(user.bday, INTERVAL 3 YEAR)
        AND race_results.date <  ADDDATE(user.bday, INTERVAL 4 YEAR)
    GROUP BY user.name;
选择user.name,COUNT(*)
来自“比赛结果”
user.id=race\u results.userid上的内部联接“user”
其中race_results.place=1
和race_results.date>=ADDDATE(user.bday,间隔3年)
和race_results.date