2012-12-15 4 views
1

이 msn 응용 프로그램에 대한 사용자 목록이있는 테이블이 있습니다. 우정에 대한 또 다른 테이블이 있습니다. 여기에는 userlist의 두 개의 외래 키가 있습니다.관계가있는 MySQL 데이터베이스 선택

사용자 : ID, 이름, 온라인, IP ... 친구 : ID1, ID2

내가 특정 ID를 가진 친구가 사용자의 정보를 원한다.

SELECT (latest_ip, email, online, pass, status) 
from im.user JOIN im.friend ON user.id = friend.id1 
WHERE user.id = 5 

내가 무엇을 놓치고 :

나는이 SQL 쿼리를 사용하고 있습니다?

+0

아, 그리고 MySQL의 오류 : 오류 코드 : 1241 : 당신은을 실행할 때 피연산자 1 열 (들)을 포함해야 –

+0

당신이 당신의 질문에 대한 몇 가지 정보를 누락, ** (1) ** 당신은 무엇을 어떻게해야합니까 질문? ** (2) ** 원하는 출력으로 샘플 레코드를 보여줄 수 있습니까? –

+0

친구 테이블에는 어떤 ID가 친구인지 정보가 들어 있습니다. id 12와 같은 id 5 친구. 여기에서 보는 문제는 id 5가 하나 이상의 친구를 가질 수 있으므로 where 부분에 더 많은 id가 포함되어 있다는 것입니다. 내가하고 싶은 일은 id 5의 친구를위한 친구 테이블을 확인하고, 그 id를 얻고 사용자 테이블에서 이름, 최신 ip 등의 다른 정보를 얻기 위해 쿼리하는 것입니다. –

답변

0

당신이 그들에게 필요하지 않은 당신의 선택 절, parenthesis을 제거

SELECT latest_ip, email, online, pass, status 
from im.user 
     INNER JOIN im.friend 
      ON user.id = friend.id1 
WHERE user.id = 5 

UPDATE (1) 당신은 당신이 원하는 이후 추가 다시 테이블 user과 참여가 필요

사용자의 친구 정보를 얻으십시오.

SELECT c.* 
from im.user a 
     INNER JOIN im.friend b 
      ON a.id = b.id1 
     INNER JOIN im.user c 
      ON b.id2 = c.id 
WHERE a.id = 5 
+0

오 잘. 도와 주셔서 감사합니다. 내가 쓴 첫 번째 쿼리는 작동하지 않는 것 같지만 두 번째 쿼리는 paranthesis를 제거 할 때 작동하는 것 같습니다. 다시, 도움을 주셔서 감사합니다 :) –

+0

@ BarışcanKayaoğlu 내 업데이트 된 답변을 참조하십시오. –