1

これらの4つのフィールド(すべて整数)との一致というテーブルがあります。

1.id
2.team1
3.team2
4.winner_team

いくつかのサンプルレコードは、それがどのように見えるかを見ることができます:

id | team1 | team2 | winner_team
--------------------------------
1  | 3     | 15    | 3
--------------------------------
2  | 20    | 8     | 8
--------------------------------
3  | 18    | 11    | 18
--------------------------------
4  | 8     | 7     | 8
--------------------------------
...

次に、チームの勝利数に基づいてテーブルを注文する必要があります。たとえば、この例では、winner_teamno。8は2です(私の実際のテーブルにはさらに多くのレコードがあるため、winner_teamはたとえば10回以上発生する可能性があります)。

基本的に、winner_teamとしてのチームの回数を表す勝利数に基づいて、上位20チームを最高から最低の順にしたいと思います。team1かteam2かはまったく関係ありません。

group_byなどを使用する必要があると思いますが、その方法がわかりません。

誰かがこの場合のmysqlselectとphpコードでこれを手伝ってくれるでしょうか?

前もって感謝します。

4

2 に答える 2

3
select winner_team, count(id) as wins
from your_table
group by winner_team
order by wins desc
limit 20
于 2012-10-10T20:49:25.790 に答える
1

これがあなたが必要としているものだと思いますhttp://sqlfiddle.com/#!2/4cc3b/3

基本的に、結果を取得するには、MySQL関数COUNT()とGROUPBYを使用します。

于 2012-10-10T20:56:59.967 に答える