2016-08-22 14 views
0

私は2つのテーブル(UsersPairs)を持っています。 Pairsテーブルには、IDとuser1ID、user2IDの3つの列があります。私はその後、PairsテーブルのIDのユーザの詳細ベースを取得するためにSELECT文を使用して見ていSQLインナー2つの外部キーを結合

ID  user1ID  user2ID 
------------------------------ 
1  1043   2056 

ユーザー

ID  firstName  surname 
------------------------------ 
1043 john   doe 
2056 jane   doe 

ペア:

SELECT users1.*, users2.* 
FROM Pairs 
JOIN Users users1 ON Pairs.user1ID = users1.IDNumber 
JOIN Users users2 ON Pairs.user2ID = users2.IDNumber 
WHERE Pairs.ID = 1 

これは2人のユーザーの詳細を返しますが、すべてが1つの行にありますが、Usersテーブルと同じように、各ユーザーを別の行に戻すにはどうすればよいですか?

答えて

0
SELECT users1.*, users2.* 
FROM Pairs 
JOIN Users 
ON Pairs.user1ID = users.IDNumber 
OR Pairs.user2ID = users.IDNumber 
WHERE Pairs.ID = 1 

2つの結合ではなく、ON条件でOR文を使用してください。

0

INでも動作します。

SELECT * 
FROM Pairs p 
     JOIN Users u ON u.ID IN (p.user1ID, p.User2ID) 
WHERE p.ID = 1 
関連する問題