2011-03-20 8 views
0

mysql db를 사용하고 있습니다. 2 개의 테이블이 있습니다. 2 테이블에서 사용자 목록을 선택하는 사용자 제안 목록을 작성 중입니다. 먼저 table (users)에 사용자 정보가 있습니다. 두 번째 table (followers)에는 다음 목록이 있습니다. 나는mysql join query help

내 쿼리가

SELECT a.*, b.userid, b.friendid, a.userid 
FROM users a,followers b 
WHERE a.userid != '$uid' 
AND (b.friendid != a.userid AND b.userid != '$uid') 

처럼 제안을 선택해야하지만이 쿼리는 모든 데이터가 이미 포함 또한 사용자를 따라 반환합니다.

도와주세요. 미리 감사드립니다.

+0

조회 절대로 시도 * 나쁜 스타일입니다. –

답변

0

두 테이블에 합류하지 않으므로 WHERE 절에서 제외되지 않은 모든 항목을 가져옵니다.

귀하의 질문은 약간 불분명하다,하지만 난 당신이 찾고있는 의심 :.

SELECT a.*, b.userid, b.friendid, a.userid 
FROM users a,followers b 
WHERE a.userid != '$uid' 
AND b.userid = a.userid 
AND b.friendid != a.userid 
+0

나는 아직 따르지 않은 테이블에서 독특한 제안을 얻으려고합니다. 하지만 두 쿼리에서 중복을 얻고 있습니다 – Raj

0

select * from users 
where userid != '$uid' and 
userid not in (select friendid from followers where userid='$uid') 
+0

많은 행을 가진 테이블에서 시도해보십시오. 완료되면 호출;) 당신이 메인 쿼리에서 각 행에 대한 선형 검색을 만드는 것처럼'IN'을 사용할 때. –

+0

그것은 작동합니다. 고마워요! – Raj

+0

@brian : mysql 5.1에서 수정되었습니다. – Zimbabao