W SQL ten typ zapytania wymaga tak zwanego EXCEPTION JOIN
. Niektóre RDBMS faktycznie implementują to jako osobny typ (taki jak DB2), podczas gdy inne wymagają obejścia. W twoim przypadku wynosi (w SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
Który przyniesie oczekiwane rekordy „nie w domu”.
Podobne przykłady można znaleźć w wielu miejscach na tej stronie.
Nigdy nie używałem Doctrine, więc nie mogę ci w tym pomóc. Ale moje najlepsze przypuszczenie byłoby takie:
addWhere('uh IS NULL')
lub
addWhere('uh.id_user IS NULL')