2014-06-12 2 views
-1

대다수의 관계를 모델링하기 위해 PlayerFriends라는 테이블이 있습니다.플레이어의 친구를 조회하십시오

PlayerFriends 테이블에는 PlayerFriendPlayerID와 PlayerFriendFriendID가 있습니다. 이들은 외래 키입니다.

플레이어의 플레이어 테이블에는 PlayerName 필드가 있습니다.

'pid'플레이어의 모든 친구의 PlayerName을 모두 선택하고 싶습니다.

나는 그 날 모든 친구를 얻을 수있는 지금 쿼리를 가지고 :

SELECT * FROM PlayerFriends WHERE PlayerFriends.PlayerFriendPlayerID = pid; 

하지만 어떻게 내가 대신 친구의 플레이어 명을 선택할 수 있습니다?

감사

답변

3

당신은 간단한 Join으로이 작업을 수행 할 수 있습니다

Select P.PlayerName 
From PlayerFriends F 
Join Players   P On F.PlayerFriendFriendId = P.PlayerId 
Where F.PlayerFriendPlayerId = pid 
2

시도 :

SELECT C.PlayerName 
FROM Players AS A 
    JOIN PlayerFriends AS B ON B.PlayerId=A.id 
    JOIN Players AS C ON B.PlayerFriendPlayerID=C.id 
WHERE A.id=pid 
+0

잘못된'ON()'절 –

+0

예, 나는 그것을 고정 Siyual의 답변을 @ 참조 . – Simon

+0

아직 틀림없이 다시 플레이어 테이블에 가입 할 필요가 없으며 친구 id와 플레이어를 합류시켜야합니다. –

관련 문제