我有以下表格:左外連接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