2011-04-19 2 views
0

다른 그룹에 할당하기 위해 사용자 데이터와 m : n 관계 테이블이있는 테이블이 있습니다. mysql 5.1로 조인 된 테이블에 대해 여러 IN() 검사

SELECT * 
FROM user AS u 
LEFT JOIN user_groups AS g ON g.uid = u.uid 
WHERE 1 IN (g.gid) AND 2 IN (g.gid) 

불행하게도이 문이 작동하지 않습니다 : 1 군에 속하고이 모든 사용자를 필터링하려면 나는 다음과 같은 SQL을 썼다. 결과는 비어 있지만 두 그룹 모두에있는 사용자가 있습니다. 내가 두 번째 가입 할 때 작동 user_groups하기 :

SELECT * 
FROM user AS u 
LEFT JOIN user_groups AS g ON g.uid = u.uid 
LEFT JOIN user_groups AS g2 ON g2.uid = u.uid 
WHERE 1 IN (g.gid) AND 2 IN (g2.gid) 

이 사람이 나에게 설명 할 수, 첫 번째 문 어떤 문제가 있습니까? 누군가가 나를 보여줄 수 있다면 좋을 것입니다. 한 그룹으로이 문제를 해결하는 방법은 그룹의 다양한 양을 확인해야하기 때문입니다.

를 교체 AND와 OR 첫 번째 시도에서 쿼리에서 미리 피트

답변

0

을 주셔서 감사합니다. 열 gid는 동시에 1과 2가 될 수 없습니다.

+0

좋아, 나는 OR 커넥터를 시도하고 그것이해야처럼 작동합니다. 그룹 1 또는 그룹 2에있는 모든 사용자를 얻습니다. 그러나 그룹 1과 그룹 2에있는 모든 사용자를 얻을 수있는 기회가 있습니까? – Pete

+0

예,이 레코드는 하나 또는 다른 레코드가있는 모든 레코드를 가져옵니다. –

+0

그리고 두 그룹을 가진 사용자 만 얻으려면 쿼리를 변경하는 방법을 알고 있습니까? – Pete

관련 문제