1

1つのテーブルにゲームの統計情報があり、別のテーブルにホームチーム、アウェイチーム、ゲームの日付、勝者などのゲーム情報があるゲームのデータがあります。ゲーム情報データと統計データを結合する方法を探しています。統計データは、最初の5人のプレーヤーがホームチームで、次の5人のプレーヤーがアウェイチームになるように構成されています。

ゲーム情報スキーマ:gamelog(gameid、gamedate、hometeam、awayteam、winner)gamestats(gameidindex、player、points、rebounds、...)

出力を次のようにしたいと思います。

  • ホーム、ホームチーム、プレーヤー、ポイント、リバウンド
  • ホーム、ホームチーム、プレーヤー、ポイント、リバウンド
  • ホーム、ホームチーム、プレーヤー、ポイント、リバウンド
  • ホーム、ホームチーム、プレーヤー、ポイント、リバウンド
  • ホーム、ホームチーム、プレーヤー、ポイント、リバウンド
  • アウェイ、アウェイチーム、プレーヤー、ポイント、リバウンド
  • アウェイ、アウェイチーム、プレーヤー、ポイント、リバウンド
  • アウェイ、アウェイチーム、プレーヤー、ポイント、リバウンド
  • アウェイ、アウェイチーム、プレーヤー、ポイント、リバウンド
  • アウェイ、アウェイチーム、プレーヤー、ポイント、リバウンド

チーム列の最初の5つの名前がホームチーム、次の5つの名前がアウェイチームになるように参加する方法が見つからないようです。私がそれを行うことができた唯一の方法は、それぞれに10のチーム名が含まれる2つの追加の列を使用することです。

SELECT gamelog.hometeam, gamelog.awayteam, gamestats.player, gamestats.points, gamestats.rebounds 
    WHERE gamestats.id = 18873
    AND gamelog.id = gamestats.id;
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド
  • ホームチーム、アウェイチーム、プレーヤー、ポイント、リバウンド

別の可能性としては、PHPを介して複数のクエリを実行し、クエリの実行後にデータを結合することも考えられますが、それがより効率的かどうかはわかりません。チーム名を持つ列をgamestatsテーブルに追加することもできますが、それは冗長に思えます。

編集:スキーマを投稿し、言語をクリアしました

4

1 に答える 1

0

私はそれを考え出した。gamestatsテーブルの最初の5行をgamelogテーブルのホームチーム名で結合し、次にUNIONでgamestatsテーブルの次の5行をゲームログテーブルの離れたチーム名で結合する必要がありました。

于 2012-10-07T19:01:35.757 に答える