I SQL behöver denna typ av fråga vad som kallas en EXCEPTION JOIN
. Vissa RDBMS implementerar faktiskt detta som en separat typ (som DB2), medan andra behöver använda en lösning. I ditt fall uppgår det till (i SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
Vilket kommer att ge de förväntade "inte i ett hus"-poster.
Det finns liknande exempel på ett antal ställen på den här webbplatsen.
Jag har aldrig använt Doctrine, så jag kan inte hjälpa dig där. Men min bästa gissning skulle vara något i stil med:
addWhere('uh IS NULL')
eller
addWhere('uh.id_user IS NULL')