我正在尝试基于权限进行记录连接,其中至少有2个人共享权限。 请注意,在permissions子句的一侧,它可以是一组用户中的任何人。
另一方面,它必须与给定的id匹配。
到目前为止,我已尝试执行以下操作,但它不会返回用户2702和2606都存在的联系人记录:
SELECT DISTINCT "contacts".* FROM "contacts"
LEFT OUTER JOIN "permissions"
ON "contacts"."id" = "permissions"."contact_id"
LEFT OUTER JOIN "permissions_users"
ON "permissions"."id" = "permissions_users"."permission_id"
LEFT OUTER JOIN "permissions_users" "permissions_users_2"
ON "permissions"."id" = "permissions_users_2"."permission_id"
WHERE ("permissions_users"."user_id" IN (2727, 2606, 2729)
AND "permissions_users_2"."user_id" IN (2702))
ORDER BY name_sort asc nulls last LIMIT 40 OFFSET 0