Here's my SQL problem. I have 2 tables:
User Table:
[UserID] [Access]
Abe A
Abe B
Brad C
Cathy A
[Role] [Access]
Admin A
Admin B
ReadOnly C
[UserID] [Role}
Abe Admin
Brad ReadOnly
Cathy None
You can get all roles that user has access to as:
select u.userid, r.role
from users u join
roles r
on u.access = r.access
group by u.userid, r.role
having count(*) = (select count(*) from roles r2 where r2.role = r.role);