2017-05-16 8 views
0

私はフィクスチャテーブルを照会して(両方のチームの名前。1つの主キーを2つの外国関係に照会してください

+1

キーの同じテーブルを参照しているテーブルがある場合はいつでも、そのテーブルに複数の結合が必要です。物事をまっすぐに保つためには、参照されるテーブル名とカラム名の別名を付ける必要があります。 – xQbert

答えて

1

フィクスチャテーブルに2度参加する必要があります。このようなもの。

select * 
from Fixture f 
join Team t1 on t1.TeamID = f.TeamA_ID 
join Team t2 on t2.TeamID = f.TeamB_ID 
+0

私はまた、選択にカラムをエイリアシングすることをお勧めします。そうでなければ、どのチームに値するチーム名が挑戦的であるかを知ることができます。 't1.teamNameをTeamName1、T2.teamNameをTeamName2'とします。 – xQbert

+0

@xQbertを絶対に選択してください。そして、なぜ私が結合の列をエイリアスにしなかったのかわからない....私は決してそれをしない。 –

0

同じテーブルに複数回参加できます。

Fixtureの外部キーにNULL値が含まれている場合、LEFT JOIN(INNER JOINではなく)を使用すると、Fixtureテーブルからすべての値を取得します。

select 
    AB.fixtureID, 
    A.teamName as TeamA_Name, 
    B.teamName as TeamB_Name 
from Fixture AB 
left join Team A on (A.TeamID = AB.TeamA_ID) 
left join Team B on (B.TeamID = AB.TeamB_ID) 
関連する問題