关系部门查询

时间:2016-06-17 21:33:15

标签: tsql relational-division

我在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应用程序中执行用户访问设置。 罐

1 个答案:

答案 0 :(得分:1)

  1. 使用交叉连接

    将UserTbl与ActivityTbl连接

    从UsertTbl中选择*交叉连接ActivityTbl

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

    这将生成一个包含用户和活动之间所有可能组合的数据集。

    1. 使用" left join"加入以前的数据集与UserAccessTbl。
    2. https://technet.microsoft.com/en-us/library/ms187518%28v=sql.105%29.aspx

      (注意:你只能在一个查询中完成,只需加入两个部分)