Sql 选择同一表中的记录子集

Sql 选择同一表中的记录子集,sql,Sql,有一个表显示权限和某些对象的映射,即对象“obj1”具有“perm1”和“perm2”权限,“obj2”-“perm1”和“perm3” Permission_id Object_Id perm1 | obj1 perm2 | obj1 perm1 | obj2 perm3 | obj2 问题是:如何获得应用于所有对象的权限子集?即: Permission_id perm1 以下使用计数和聚合来实现此

有一个表显示权限和某些对象的映射,即对象“obj1”具有“perm1”和“perm2”权限,“obj2”-“perm1”和“perm3”

Permission_id Object_Id
  perm1      |   obj1
  perm2      |   obj1
  perm1      |   obj2
  perm3      |   obj2
问题是:如何获得应用于所有对象的权限子集?即:

Permission_id 
    perm1     

以下使用计数和聚合来实现此目的:

select permission_id
from permissionobjects po
group by permission_id
having count(distinct object_id) = (select count(distinct object_id) from permissionobjects);