2010-12-27 4 views
1

내가 검색 과정에서 데이터를 수집 할 필요가 세 개의 테이블이 세 테이블의 쿼리를 빌딩 표 3 : [ID][NickName]는 MySQL의

사용자 이름을 검색 할 사람이 검색 입력입니다. 나는 affiliate_id가 Table2의 user_id와 일치하는 테이블 1의 데이터를 반환해야하는데, 이는 검색 될 닉네임과 같다.

나는 그 의미 :

답변

4

이 시도하게 희망 : 여기 올바른 필드에 joing하고있어 경우

 
"select table1.* from table1 
inner join table2 on table2.user_id = table1.affiliate_id 
inner join table3 on table3.id = table2.user_id 
where table3.nickname like '%".mysql_real_escape_string($searchtext)."%'" 
+0

잘 모르겠어요,하지만 당신의 쿼리처럼 보일 것이다 이. – Oli

+0

와우, 고마워요 올리. 그것은 완벽하게 작동했습니다. Inner Join이하는 일을 설명 할 수 있습니까? 나는이 질의를 이해하기를 원한다. – tmartin314

+0

나는 설명하기에 너무 좋지 않다.이 위키피디아 기사는 다있다 : http://en.wikipedia.org/wiki/Join_%28SQL%29 .. – Oli

0
SELECT t1.*, t3.nickname FROM Table1 t1 
JOIN Table2 t2 ON t2.id=t1.affiliate_id 
JOIN Table3 t3 ON t2.user_id=t3.user_id 
WHERE t2.user_id=?;