2016-06-17 9 views
0

私はSQL Server 2008でツリーテーブルを持っては、下記のお気に入り:関係部門クエリ

UserTbl:

UserID  UserName 
1   User1 
2   User2 
3   User3 

ActivityTbl:

ActivityID Activity 
1   A 
2   B 
3   C 

UserAccessTbl(リレーショナル部門表):

UserID  Activity  Access 
1   A    True 
1   B    False 
2   C    True 

私はこの結果のクエリ:

UserID  Activity  Access 
1   A    True 
1   B    False 
1   C    Null 
2   A    Null 
2   B    Null 
2   C    True 
3   A    Null 
3   B    Null 
3   C    Null 

どうすればよいですか? これを使用して、.Netアプリケーションのユーザーアクセス設定を実行したいと考えています。 タンク

+0

検索CROSSには、それは非常に簡単でしたJOINと – Ako

答えて

1
  1. これは、すべての可能性を持つデータセットになりますActivityTbl

https://technet.microsoft.com/en-us/library/ms190690%28v=sql.105%29.aspx

に参加UsertTblクロスから

選択*に参加し、クロスを使用してActivityTblでUserTblに参加しますユーザーとアクティビティの組み合わせ

  1. "left join"を使用してUserAccessTblで前のデータセットを結合します。

https://technet.microsoft.com/en-us/library/ms187518%28v=sql.105%29.aspx

(注:あなたがちょうど2つの部分を結合する、唯一のクエリでそれを行うことができます)

+0

それを試してみてください!ご協力いただきありがとうございます。 –

+0

あなたの歓迎:) – RojoSam