Я пытаюсь получить только общие черты от всех пользователей.
User(u)Trait(t)
u1 t1
u1 t2
u1 t3
u2 t2
u2 t3
u2 t4
u3 t2
u3 t3
u3 t4
Я пытаюсь соединить таблицу с самой собой, но не получаю желаемого результата.
Я ожидаю, что результат вышеизложенного будет t2 и t3, и это единственные черты, которые присутствуют у всех 3 пользователей.
Вы можете использовать агрегацию:
select ut.trait
from usertraits ut
group by ut.trait
having count(*) = (select count(distinct ut2.user) from usertraits ut2);