ある種のオンラインゲームを実現しました。ここで、最も多く対戦した敵が誰であるかを確認できる統計を表示したいと思います。
ゲームをデータベースに保存しました。プレーヤーは、フィールド PLAYER1 および PLAYER2 に格納されます。どちらが他の人を招待するかによって異なります。ゲームを開始し、相手を招待するのは PLAYER1 です。
ID | PLAYER1 | PLAYER2 | GAMESTATE
今、私は特定のエントリを持っています。私がプレーヤー 1 で、友人 (2) が私を 2 回招待したとしましょう。エントリは次のようになります。
1 | 2 | 1 | 1
2 | 2 | 1 | 1
3 | 1 | 2 | 1
4 | 3 | 4 | 1 <-- some other random game
今、一番一緒にプレーした選手を知りたいです。実際には、最もプレイされたプレーヤーをカウントする 1 つの選択が必要ですが、どちらの場合も (PLAYER1 または PLAYER2)。
1 つのクエリに最適なソリューションは何でしょうか? MySQL UNION
または GROUP BYを使用できますか? はいの場合、どうすればよいですか?
編集: 期待される結果は実際には次のようになります:
PLAYER | MOST_ENEMY | GAMES
1 | 2 | 3
2 | 1 | 3
3 | 4 | 1
4 | 3 | 1
ご協力ありがとうございました!