0

現在のユーザーのすべてのフィクスチャ (誰が「誰に対して」プレイするか) を表示する必要があるため、SQL クエリを記述しました

SELECT 
  fixture.*
FROM
  sport_team_player AS team_player, sport_team AS team 
INNER JOIN sport_fixture AS fixture 
  ON (`team_player`.`team_id` = fixture.`team1_id` OR `team_player`.`team_id` = fixture.`team2_id`)
WHERE 
  team_player.`team_id` = team.`team_id` AND team_player.`player_id` = '16'

そして、これは機能せず、 team_player.team_id が存在しないことを教えてくれます

しかし、複数のテーブルから選択するのではなく、2 番目のテーブルに参加すると問題なく動作します。

PS。これは、そのようなクエリを記述する最良の方法ではありませんが、ORM モジュールによって生成されます。

編集:

結果は、次のようなフィクスチャ データのリストになります。

------------------------------
|fixture_id|team1_id|team2_id|
------------------------------
|1         | 2      | 3      |
------------------------------
4

3 に答える 3

0

例えば:

SELECT f.*
  FROM sport_team_player p
  JOIN sport_team t
    ON t.team_id = p.team_id 
  JOIN sport_fixture f
    ON p.team_id IN(f.team1_id,f.team2_id)
 WHERE p.player_id = 16;
于 2013-10-08T08:41:40.470 に答える