Как выбирать в базе данных уникальные значения, сравнивая два массива?
решается например в посгресе внешним джойном
select *
from contacts c1
outer join contacts c2 on c1.id=c2.id
where c1.user_id=x and c2.user_id=y
В T-SQL (MS SQL) можно через операции над множествами:WITH User1Contacts AS (
    SELECT id as cotact_id FROM contacts  WHERE user_id = 1
),
User2Contacts AS (
    SELECT id as cotact_id FROM contacts  WHERE user_id = 2
)
SELECT * FROM User1Contacts 
EXCEPT
SELECT * FROM User2Contacts
INTERSECT наоборот выберет только общие контакты
UNION - объединение контактов обоих пользователей (без дубликатов)
Т.е. говоря языком операций над множествами
INTERSECT = A ∩ B
UNION = A U B
EXCEPT = A \ B