Dalam SQL, jenis kueri ini membutuhkan apa yang dikenal sebagai EXCEPTION JOIN
. Beberapa RDBMS sebenarnya mengimplementasikan ini sebagai tipe terpisah (seperti DB2), sementara yang lain perlu menggunakan solusi. Dalam kasus Anda, jumlahnya menjadi (dalam SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
Yang akan menghasilkan catatan 'tidak di rumah' yang diharapkan.
Ada contoh serupa di sejumlah tempat di situs ini.
Saya tidak pernah menggunakan Doctrine, jadi saya tidak dapat membantu Anda di sana. Tapi tebakan terbaik saya adalah seperti:
addWhere('uh IS NULL')
atau
addWhere('uh.id_user IS NULL')