2012-04-06 3 views
1

SQL Server 2008에는 두 개의 테이블이 있습니다. 사용자를위한 하나 개의 테이블 :SQL Server : 동일한 테이블을 선택 하시겠습니까?

id_user - integer, primary key 
id_group - integer 
username - varchar 
phone - varchar 
id_coordinating - int 

샘플 데이터 : 그룹 사용자의

1, 1, admin,  0230029921, NULL 
2, 2, supervisor1, 0230029933, NULL 
3, 2, supervisor2, 0321211233, NULL 
4, 3, user1,  0321222323, 2 
5, 3, user2,  0323211232, 2 
6, 3, user3,  0324223121, 3 

모든 사용자는 하나의 관리자는 id_user

및 그룹

id_group - integer, primary key 
groupname - varchar 

에 대한 다른 테이블로 표현했다 샘플 데이터 :

1, Administrators 
2, Supervisors 
3, Users 

는 나는 다음과 같은 쿼리를 실행 해요 :

select id_user, username, group.groupname, phone, id_coordinating 
from users 
INNER JOIN group ON users.id_group = group.id_group 

을 나는 다음과 같은 결과를 얻을 :

1 1 admin  Administrators 0230029921 NULL 
2 2 supervisor1 Supervisors 0230029933 NULL 
3 2 supervisor2 Supervisors 0321211233 NULL 
4 3 user1  Users   0321222323 2 
5 3 user2  Users   0323211232 2 
6 3 user3  Users   0324223121 3 

내가 이름으로 id_coordonating을 교체하고 같이하고자합니다. ..

1 1 admin  Administrators 0230029921 NULL 
2 2 supervisor1 Supervisors 0230029933 NULL 
3 2 supervisor2 Supervisors 0321211233 NULL 
4 3 user1  Users   0321222323 supervisor1 
5 3 user2  Users   0323211232 supervisor1 
6 3 user3  Users   0324223121 supervisor2 

감사합니다,

+2

는 유래의 포인트입니다 –

+0

@Scott 더 읽기 쉽게 편집하고 사용자의 요구를 충족하기 위해 강조를 해결할 수 있도록이 문제를 포맷하십시오. – JonH

+0

@JonH 질문자의 질문을 올바르게 형식화하는 것을 배우는 것은 또한 질문자의 책임입니다. – Khan

답변

0

left join 사용자 테이블에 다시 넣을 수 있습니다.

select 
    u.id_user, 
    u.username, 
    g.groupname, 
    u.phone, 
    u2.username 
from users u 
join group g 
    on u.id_group = g.id_group 
left join users u2 
    on u.id_coordinating = u2.id_user 
+0

고맙습니다. – lazarvictor80

관련 문제