2016-03-25 5 views
0

コンテキスト

私は小さな試合のホビーデータベースを試して、試合、選手、ゴールを記録しています。そして、私は解決する方法をかなり知らない問題を見つけました。MySQL - EERテーブルのダブルプライマリキー

マッチテーブルには、チームテーブルのtIDを指す2つの外部キーがあります。 私は後で、特定の試合でお互いに対戦したチーム(名前で)を見るためにSELECTを行うことができるということでした。

select * from `Fooseball`.`match` 
INNER JOIN team T1 
ON Fooseball.`match`.mHome_Team = T1.tID 
INNER JOIN team T2 
ON Fooseball.`match`.mAway_Team = T2.tID 
WHERE mID=1 

Result

enter image description here

質問

1は、2つの主キーを作成するよりも、これをアーカイブする彼らのより良い方法です。中間のテーブルのように?

2私はどのように私は "家"と "離れて"または何か他のものとしてtName列の名前を指定することができます私の選択ステートメントを構築することができますか?私が試してみるとき

INNER JOIN team AS T1 

何も変わりません。

+0

'match'テーブルには、' team'を指す2つの***外部キーがあります。 'match'は*** ***のプライマリキーを持ちます。これは' mID'です。 –

+0

ありがとうございます。修正済み –

答えて

2

これにもかかわらず、無制限の追加要件がありますが、これは私がやる方法とほぼ同じです。結果内の列の名前を変更するには

、あなたが報告するための

SELECT m.mDate AS match_date, T1.tName AS home_team, T2.tName AS away_team 
    FROM Fooseball.`match` m 
    INNER JOIN team T1 
    ON m.mHome_Team = T1.tID 
    INNER JOIN team T2 
    ON m.mAway_Team = T2.tID 
    WHERE mID=1 

ような何かをするだろう、あなたは、大文字と小文字、スペースを使用して列を別名設定できる(例えば、「ホームチーム」)、二重にエイリアスを囲むことにより、引用符。

関連する問題