1

SQL Server 2008には、2つのテーブルがあります。ユーザー用の1つのテーブル:

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のすべてのユーザーには、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 

ありがとう、

4

1 に答える 1

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
于 2012-04-06T19:13:35.467 に答える