关系划分查询

Relational Division Query

我在 SQL Server 2008 中有树 table 如下:

用户表:

 UserID     UserName
 1          User1
 2          User2
 3          User3

活动表:

 ActivityID   Activity
 1            A
 2            B
 3            C

UserAccessTbl(关系部Table):

 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. 使用交叉连接将 UserTbl 与 ActivityTbl 连接起来

    Select * 来自 UsertTbl 交叉连接 ActivityTbl

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

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

  1. 使用 "left join".
  2. 将之前的数据集与 UserAccessTbl 合并

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

(注意:您只能在一个查询中完成,只需将两部分连接起来即可)