2012-07-03 2 views
0

다음 표에서 특정 계정에 대해 모든 사용자 및 그룹을 선택하고 싶습니다.특정 계정에 대한 사용자 및 그룹 선택

USERS 
-id 
-name 
-groupid 
-accountid 


GROUPS 
-id 
-name 
-accountid 

내가 뭘 다음 몇 가지 이유 결과를

SELECT 
USERS.ID, 
USERS.NAME, 
GROUPS.ID, 
GROUPS.NAME,  
FROM GROUPS JOIN USERS ON USERS.ACCOUNTID= GROUPS.ACCOUNTID 
WHERE GROUPS.ACCOUNTID=1 

은 (그룹의 수입니다) 3 회 반복한다. 각 사용자는 다른 GROUPID로 3 번 표시됩니다.

업데이트 대신 GROUPID에 가입하면 제안 된 것처럼 나타납니다. 나는 다음을 얻는다. 그룹에 한 명 이상의 사용자가 있어도 그룹당 단일 사용자 만 표시됩니다.

USER_ID GROUP_ID  GROUP_NAME  NAME 
42   6  Teacher  John E. 
59   8  Student  Bill W. 
+0

조회에서 DISTINCT 사용하려고 ... 결과는 정확하지만 문제는 그들이 내가 너무 내 생각을했다 DISTINCT –

+0

를 사용해보십시오 제안 반복되는 것을 때문이다. 나는 SELECT DISTINCT GROUP.ID를했지만 .... 동일한 결과가 반환되었습니다. –

+0

가입을 수행 할 때 GROUPS 대신 USERS를 기본 테이블로 두어야합니다. – sel

답변

1

GROUPID 대신 ACCOUNTID에 가입하면 각 사용자가 다른 GROUPID로 3 번 표시됩니다.

아래에서 GROUPID를 조인 할 수 있습니다.

SELECT 
USERS.ID, 
USERS.NAME, 
GROUPS.ID, 
GROUPS.NAME  
FROM USERS JOIN GROUPS ON USERS.GROUPID= GROUPS.ID 
WHERE GROUPS.ACCOUNTID=1 

업데이트 : http://sqlfiddle.com/#!2/3afee/1

+0

그럴 때 그룹이 표시됩니다. 그러나 모든 사용자가 해당 그룹에 대해 표시되지는 않습니다. 사용자 이름이 표시되는 3 개의 그룹과 열을 나열합니다. 사용자 이름이 있지만 해당 그룹에 더 많은 사용자가 있습니다. –

+0

몇 가지 샘플 데이터를 보여 주시겠습니까? – sel

+0

나를 소개 해줘서 고맙습니다. sqlfiddle –

관련 문제