2012-04-06 8 views
1

SQL Server 2008には2つのテーブルがあります。ユーザーのための一つのテーブル: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 

グループUSERSのすべてのユーザーが1人の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

、あなたのニーズを満たすために強調表示を編集し、修正することができ、stackoverflowのポイントである –

+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

関連する問題