2014-11-28 4 views
0

Существует таблица, представляющая сопоставление для разрешений и некоторых объектов, то есть объект 'obj1' имеет разрешения 'perm1' и 'perm2', 'obj2' - 'perm1' и ' perm3.Выберите подмножество записей в одной и той же таблице

Permission_id Object_Id 
    perm1  | obj1 
    perm2  | obj1 
    perm1  | obj2 
    perm3  | obj2 

Вопрос: как получить подмножество разрешений, которые применяются ко всем объектам? То есть :

Permission_id 
    perm1  

ответ

1

Следующая использует счетчики и агрегирование для этой цели:

select permission_id 
from permissionobjects po 
group by permission_id 
having count(distinct object_id) = (select count(distinct object_id) from permissionobjects); 
Смежные вопросы