約 3 つの MySQL クエリを 1 つに結合したいのですが、複雑なものもあります。(以下は私のテストクエリとテーブルデータの例です)
表 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 で参照されたアカウント文字の合計時間を表示および合計する 2 番目のクエリ:
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
私が欲しいもの:
上記の 2 つのクエリを 2 つ 1 つ組み合わせて、以下のような結果を得たい:
ランク列はアカウントからの文字の最高ランクであり、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 を使用した 2 番目のクエリに問題があると思われるので、今追加します。