V SQL potřebuje tento typ dotazu to, co je známé jako EXCEPTION JOIN
. Některé RDBMS to ve skutečnosti implementují jako samostatný typ (například DB2), zatímco jiné potřebují použít řešení. Ve vašem případě to činí (v SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
Které vynese očekávané záznamy „není v domě“.
Podobné příklady jsou na řadě míst na tomto webu.
Nikdy jsem nepoužil Doctrine, takže vám nemohu pomoci. Ale můj nejlepší odhad by byl něco jako:
addWhere('uh IS NULL')
nebo
addWhere('uh.id_user IS NULL')