Mysql
 sql >> Base de données >  >> RDS >> Mysql

Relation à plusieurs et obtenir sans cela

En SQL, ce type de requête nécessite ce qu'on appelle un EXCEPTION JOIN . Certains RDBMS l'implémentent en tant que type séparé (tel que DB2), tandis que d'autres doivent utiliser une solution de contournement. Dans votre cas, cela revient à (en SQL) :

SELECT User.* 
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL

Ce qui rendra les enregistrements "pas dans une maison" attendus.

Il existe des exemples similaires à plusieurs endroits sur ce site.

Je n'ai jamais utilisé Doctrine, donc je ne peux pas vous aider. Mais ma meilleure estimation serait quelque chose comme :

addWhere('uh IS NULL')

ou

addWhere('uh.id_user IS NULL')