我想将大约 3 个 MySQL 查询合并为一个,但有些复杂。(以下是我的测试查询和表数据示例)
表 1:账户
id | account | email | refer
11 | aasdasd | 5@as.a | 0
12 | gasd | 4@ds.a | 11
13 | xcsxs | 3@ss.a | 11
14 | cbasd | 2@as.a | 11
15 | asdv | 1@gs.a | 11
16 | sdfgx | 6@hs.a | 8
...
表2:字符
guid |account| name | rank | time
561 | 11 | asda | 945 | 12
562 | 11 | asda | 746 | 19
563 | 11 | asda | 452 | 1
564 | 12 | asda | 123 | 15
565 | 12 | asda | 456 | 18
566 | 13 | asda | 123 | 6
567 | 13 | asda | 789 | 18
568 | 13 | asda | 123 | 17
569 | 15 | asda | 456 | 13
570 | 16 | asda | 123 | 15
571 | 17 | asda | 456 | 16
...
我的测试查询:
SELECT id FROM accounts WHERE refer='11'
识别帐户是使用值 '11' 和第二个查询来显示和汇总帐户字符的总时间,其中有参考值 11 :
SELECT a.account, a.email, SUM(c.time) , c.rank
FROM accounts a, characters c
WHERE a.id=c.account
ORDER BY MAX(c.rank) DESC
我想要什么:
我想将上述两个查询组合在一起,并得到如下结果:
rank 列是帐户中字符的最高等级,totaltime 是该帐户所有字符时间的总和
Account | Email | Rank | TotalTime
gasd |4@ds.a | 456 | 33
xcsxs |3@ss.a | 789 | 41
cbasd |2@as.a | 0 | 0
asdv |1@gs.a | 456 | 13
我认为 SUM 的第二个查询有问题,我现在添加它。