2017-02-16 6 views
-1

同じエンティティを使用する外国人チームとチームホームの名前を取得したいと思います。同じエンティティMYSQLを使用してチーム名を選択する方法

これは私が name's TEAM_IDとteam_fk_idのチーム名を取得したい私の関係

team : id, name 
Game : id, team_id, team_fk_id 

です。

これを行う方法は知られていません。あなたは二回チームにJOINに必要

SELECT g.id, t1.name AS home_team, t2.name AS away_team 
FROM game AS g 
JOIN team AS t1 ON t1.id = g.team_id 
JOIN team AS t2 ON t2.id = g.team_fk_id 
+0

同じエンティティはどういう意味ですか?あなたは同じゲームIDを意味しますか? – Barmar

+0

同じエンティティはチームです、あなたは正しく行っています – jqueryval

+0

@Barmarはこのクエリを制限する必要があります! – jqueryval

答えて

0

がゲーム内で各チームのために1回、2回teamに参加:

SELECT g.id, t1.name, t2.name 
FROM game g JOIN team t1 ON g.team_id = t1.team_id 
JOIN team t2 ON g.team_fk_id = t2.team_id; 

この

がその答えです
+0

このクエリにはどのように制限1を追加できますか? – jqueryval

+0

最後に 'LIMIT 1 'を追加してください。しかし、 'ORDER BY'節がなければ、それは任意のチームを選ぶだけです。特定のゲームを選ぶ 'WHERE'節が必要なのでしょうか? – Barmar

+0

SQLチュートリアルを読むのが好きなようです。あなたが見ることができるように – Barmar

0

、例えば:

SELECT g.id, t1.name AS home_team, t2.name AS away_team 
FROM Game AS g 
JOIN team AS t1 ON t1.id = g.team_id 
JOIN team AS t2 ON t2.id = g.team_fk_id 
GROUP BY g.id 
limit 1 
関連する問題