If you have reference tables that lists all the persons, it is a little easier - if not here is one way to query:SELECT
b.PersonId, a.RoleDefId
FROM
DirRoleDefinitions a
CROSS JOIN ( SELECT DISTINCT PersonId FROM DirContactRoles ) b
WHERE NOT EXISTS
(
SELECT * FROM DirContactRoles d
WHERE d.PersonId = b.PersonId AND d.RoleDefId = a.RoleRefId
)