2つのチームがお互いに対戦しているときに対戦ヘッドを計算しようとしています。 Team1は、シーズン中にTeam2に対して複数回試合することができます。ヘッド・トゥ・マッチ(ゲーム)があるたびに、ヘッド・トゥ・テーブルに結果を記録します。以下は、データを保持している私のテーブルスキーマです:mysqlを使ってヘッド対ヘッドの統計を計算する方法
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'match up id',
`team1_id` int(11) DEFAULT NULL COMMENT 'id of team1',
`team2_id` int(11) DEFAULT NULL COMMENT 'id of team2',
`winner` int(11) DEFAULT NULL COMMENT 'winner(team ID) of this head to head',
`dateplayed` date DEFAULT NULL COMMENT 'date played',
`tournament_id` int(11) DEFAULT NULL COMMENT 'tournament name',
私の目標は、team1(team1_id)がteam2(team2_id)に対して持っていたんでしたどのように多くの勝利を計算することができることです。私は今使用しています クエリは次のとおりです。
SELECT count(winner)as wins, te.id FROM head_to_head hh
LEFT JOIN teams te ON
hh.winner = te.id
WHERE hh.team1_id ='225' AND
hh.team2_id ='4'
group by te.id
order by count(winner)
私だけhh.team2_id(「4」)のための「勝利」を得る上で、私は、クエリを使用している場合。シーズン中に5回ずつ試合を行った場合、チーム1は「x」、チーム2は「x」回、最後の結果は次のようになります。 - 彼らの試合を考えてシーズン中に5回、お互いに対戦する。
[team_id] [Wins]
225 3
4 2
ご協力いただきありがとうございます。 ありがとうございます。
だから、あなたは勝者別に勝者、カウント(*)をhead_to_headグループから選択する必要があります。 – GurV
ありがとうGurwinder。それはうまくいくようです。私は1つの小さな追加が必要です。チームのうちの1人は、それに関連するチームIDと共にカウントをゼロに設定する方法を勝ち取ることはできません。ありがとうございました。 – user1960170
これはあなたの質問ではないことは分かっていますが、私は前にこのようなテーブルを作っています。これを簡単にするための提案は、競合他社を別のテーブルに正規化することです。親テーブルにはゲーム情報があり、参加者テーブルにはゲームとチームのための外部キーがあり、勝敗を示す列があり、それが要因であれば、自宅/離席の列を持つことができます。あなたが望むデータ。私はそれが(h。*)で – MageeWorld