我有一個有特定角色的用戶表。一個用戶每次爲他們擁有的角色進入表格。我需要計算具有特定角色的所有用戶,但我需要排除也有另一個角色的任何重複記錄。下面是什麼在我的表如果重複記錄具有一定的值,則排除記錄
Name Role
Steve ROLE_8
Steve ROLE_9
Steve ROLE_1
填充,這是查詢我要選擇誰擁有某些角色的用戶。我需要做的是檢查用戶是否有ROLE_1,並檢查是否有另一個用戶實例具有我不想包含該用戶並將其從返回集中排除的角色。
SELECT COUNT(DISTINCT c.user_id)
FROM users c
WHERE email_addr != ''
AND email_addr IS NOT NULL
AND EXISTS
(SELECT r.role_id
FROM ROLE r, user_role ur
WHERE c.user_id = ur.user_id
AND ur.role_id = r.role_id
AND (r.name = 'ROLE_1'
OR r.name = 'ROLE_2'
OR r.name = 'ROLE_3'
OR r.name = 'ROLE_4'
OR r.name = 'ROLE_5'
OR r.name = 'ROLE_6'))
你可以顯示你想要的輸出的例子嗎? – GabrielVa
如果我只搜索角色1到6的用戶,並且用戶在數據庫中有兩條記錄,一條使用ROLE_1,另一條使用ROLE_8,那麼我希望從返回集中完全排除該用戶。所以在我給的例子中,我想返回0條記錄,但因爲每條記錄都有一個獨特的角色,我得到1(因爲我選擇不同)。 –