我有以下表格:左外连接SQL Server的问题 - 没有返回足够的行
User 1:n UserFilter n:1 Filter
Filter
得到了一个ID
和Name
,User
得到了他Name
为ID
(不要怪我,不是我的想法!)。
整个“User'a'过滤器1,2和3”-Idea被用于ASP前端,对于这个问题并不重要。
UserFilter
简直是2列,User
和FilterID
,所以如果有一列用户 - 过滤器1,这意味着用户正在使用过滤器1,如果没有这样的列,这意味着他不是。
现在我想执行一个SELECT查询,该查询返回具有名为active
的自定义列的特定用户的每个过滤器(总共有8个)。
这里就是我有这么远:
select
distinct f.Name, f.Type,
case when uf.userid = 'a' then 1 else 0 end as Active
from filter f
left outer join userfilter uf on f.id = uf.filterid
where uf.userid = 'a' or uf.userid is null
这将返回8列,其中一些带有Active = 0
和一些与Active = 1
,只是因为我想,但如果UserFilter
包含多个用户,例如过滤器
a - 1
a - 2
b - 3
b - 7
a - 8
和我运行此查询为用户“A”的查询将只返回滤波器1作为活性,2为活动,4 5和图6为不活动和8作为活性,完全离开了3和7
有没有想法?
谢谢!
伟大的,这一个适用于当前案件和所有其他案件(没有其他用户,其他用户有相同的过滤器,其他用户有不同的过滤器,当前用户得到0过滤器等)! – 2011-06-09 12:31:30