我有一個用戶表(id,group),如果用戶不是一個組的成員,需要選擇1。一個成員可以是多個組的成員,因此每個ID可能有多個記錄(不是唯一的)從集合中只選擇一個結果
我只能返回一個(通過/失敗)值,我需要基本檢查所有記錄看看用戶是否是「管理員」的成員。如果是「管理員」的成員,我需要聲明失敗。如果沒有用戶的組是admin,那麼我需要它通過。我嘗試了幾種不同的方式,但我不知道我是否在正確的道路上。
SELECT 1
FROM GRP
WHERE USER = 'name'
AND GROUP NOT IN ('ADMIN')
SELECT 0
FROM GRP
WHERE USER = 'name'
AND EXISTS
(
SELECT 1 FROM GRP
WHERE USER = 'name'
AND GROUP NOT IN ('ADMIN')
)
EDIT =我如何解決我的問題
SELECT 1
FROM GRP
WHERE 'name' NOT IN
(
select USER
from GRP
group by USER
having sum(case when GROUP = 'ADMIN' then 1 else 0 end) = 1
)
使用第一個示例我可以看到我正在接近。如何檢查用戶是否在返回的結果中,然後返回1,如果他們是? – Echofiend
我使用了一個關於你做了什麼的回合。我更新了我的問題,以顯示它目前的工作情況。但謝謝你的回答,你是一個很大的幫助 – Echofiend