2012-02-27 20 views
0

私は2つのテーブルを持っています。
第一表:
テーブル名:ユーザー2つのテーブルを結合して詳細を表示

-id 
-name 

第二表: テーブル名:レコード

-player1ID 
-player2ID 
-player3ID 
-location 
-time 

私はすべてのレコードを表示したいと思います。
私は "SELECT * FROM Record"
を使用していますが、プレーヤーIDではなく、プレーヤーの名前を表示したいと思います。どのようにしてSQLを書くことができますか?ありがとう。

答えて

1

INNER JOINが必要です。
Userテーブルから複数の値が必要なので、(別のエイリアスの下で)テーブルを複数回参加させるのがトリックです。

select u1.name as player1, u2.name as player2, u3.name as player3, r.location, r.time 
from Record r 
inner join User u1 on r.player1ID = u1.id 
inner join User u2 on r.player2ID = u2.id 
inner join User u3 on r.player3ID = u3.id 
1

IDの代わりに名前が付けられた「レコード」テーブルが必要ですか?

その場合、あなたは(約hereに参加するまで読んで)RecordテーブルにUserテーブルをJOINことができます。

SELECT u.name as player1, u2.name as player2, u3.name as player3, 
     r.location, r.time 
FROM Record r 
JOIN User u ON u.id=player1ID 
JOIN User u2 ON u2.id=player2ID 
JOIN User u3 ON u3.id=player3ID 
0

選択a.name、b.name、c.name、d.location、dは.time from Record d、User a、User b、User cここで、d.player1Id = a.id & & d.player2ID = b.id & & d.player3ID = c.id;

関連する問題