В SQL този тип заявка се нуждае от това, което е известно като EXCEPTION JOIN
. Някои RDBMS всъщност прилагат това като отделен тип (като DB2), докато други трябва да използват заобиколно решение. Във вашия случай това възлиза на (в SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
Кое ще даде очакваните записи „не е в къща“.
Има подобни примери на много места в този сайт.
Никога не съм използвал Doctrine, така че не мога да ви помогна там. Но най-доброто ми предположение би било нещо като:
addWhere('uh IS NULL')
или
addWhere('uh.id_user IS NULL')