Cod*_*utz 2 php mysql sql aggregate-functions
好的,我有两个MYSQL表:
CREATE TABLE `sessions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userID` int(11) NOT NULL,
`runTime` int(11) NOT NULL,
`monstersKilled` int(11) NOT NULL,
`profit` int(11) NOT NULL,
`tasks` int(11) NOT NULL,
`xpGain` int(11) NOT NULL,
`lastupdate` int(11) NOT NULL,
PRIMARY KEY (`id`)
);
Run Code Online (Sandbox Code Playgroud)
和,
CREATE TABLE `users` (
`userid` int(11) NOT NULL AUTO_INCREMENT,
`user` text NOT NULL,
`pass` text NOT NULL,
`paypal` text NOT NULL,
`active` tinyint(1) NOT NULL DEFAULT '0',
`strikes` int(11) NOT NULL DEFAULT '0',
`session` text NOT NULL,
`brand` text NOT NULL,
`identifier` text NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=MyISAM AUTO_INCREMENT=651 DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
如您所见,会话具有指向用户ID的链接.现在我想制作一个总分高的PHP文件,但凭借我对PHP的一点知识和对MYSQL的了解不多,我不知道如何开始.总得分将按总运行时间排序.
示例:在用户中,我有用户#1(cody)和用户#2(Joe).现在,在会议中我有3个会话:
id, userID, runTime, monstersKilled, profit, tasks, xpGain, lastupdate
12, 1, 27, 14, 6200, 0, 5050, 1282325410
19, 1, 18, 1, 277, 1, 168, 1278897756
1968, 2, 195, 433, 111345, 4, 73606, 1280993244
Run Code Online (Sandbox Code Playgroud)
打印出来应该是:
Place, username, Total Run Time, Total Monsters Killed, Total profit, Total tasks, Total Exp Gain
1. Joe, 195, 433,11345,4,73606
2. Cody, 55, 15, 1, 5218
Run Code Online (Sandbox Code Playgroud)
使用:
SELECT u.user,
SUM(s.runtime) AS total_run_time,
SUM(s.monsterskilled) AS total_monsters_killed,
SUM(s.profit) AS total_profit,
SUM(s.tasks) AS total_tasks,
SUM(s.xpgain) AS total_xp_gained
FROM USERS u
JOIN SESSION s ON s.userid = u.userid
GROUP BY u.user
ORDER BY total_run_time DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |