2016-09-14 17 views
1

ユーザを接続するスケジュール(1週間、2週間、3週間など)の結合テーブルがあります。結合テーブルの各週には、ユーザーAとユーザーBの2人の別個のユーザーのIDがあります。ただし、週ごとに複数の行があります。MySQLのJOINテーブルから同じテーブルの複数の行を引き出す

スケジュール表::だから、それはこのようになります

----------------------------------- 
| week_id | userA_id | userB_id | 
----------------------------------- 
| 1 |  1  | 2  | 
| 1 |  2  | 3  | 
---------------------------------- 

私はまた、かなり基本的なものをユーザーに関するすべての情報を格納するユーザーテーブルを持っています。ですから、例えば:

ユーザー表:

----------------------------------- 
| id | Name | Nickname | 
----------------------------------- 
| 1 | jason | jay | 
| 2 | billy | bill | 
---------------------------------- 

私が何をしたいのですが、何が週IDに基づいて、私のスケジュール表を照会して、週ごとのユーザーのシリーズを返しています。たとえば、[{UserA.name:jason、UserB.name:billy}、{UserA.name:billy、UserB.name:jane}]のような一連のオブジェクトの1週目から、

これには複数のJOIN文が含まれていることが疑わしいですが、動作しないようです。誰もがこのMySQLステートメントを構造化する方法を知っていますか?

答えて

0

ここでのオプションの1つは、ScheduleテーブルをUserテーブルに2回参加させることです。関係の各ユーザーに対して1つずつ参加させるだけです。

SELECT u1.Name, 
     u2.Name 
FROM Schedule s 
INNER JOIN User u1 
    ON s.userA_id = u1.id 
INNER JOIN User u2 
    ON s.userB_id = u2.id 
WHERE s.week_id = 1 
+0

申し訳ありませんが、前のコメントを削除しました。私のエラー。ありがとう、私はこれが完璧に動作していると思います! –

関連する問題