Trong SQL, loại truy vấn này cần cái được gọi là EXCEPTION JOIN
. Một số RDBMS thực sự triển khai điều này như một kiểu riêng biệt (chẳng hạn như DB2), trong khi những người khác cần sử dụng một giải pháp thay thế. Trong trường hợp của bạn, nó là (trong SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
sẽ mang lại lợi nhuận hồ sơ 'không ở trong một ngôi nhà' được mong đợi.
Có những ví dụ tương tự ở một số nơi trên trang web này.
Tôi chưa bao giờ sử dụng Doctrine, vì vậy tôi không thể giúp bạn ở đó. Nhưng dự đoán tốt nhất của tôi sẽ là một cái gì đó như:
addWhere('uh IS NULL')
hoặc
addWhere('uh.id_user IS NULL')