Mysql
 sql >> Database >  >> RDS >> Mysql

Relazione con molti e farne a meno

In SQL, questo tipo di query richiede ciò che è noto come EXCEPTION JOIN . Alcuni RDBMS lo implementano effettivamente come un tipo separato (come DB2), mentre altri devono utilizzare una soluzione alternativa. Nel tuo caso, equivale a (in SQL):

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

Quale produrrà i record previsti "non in una casa".

Ci sono esempi simili in diversi posti su questo sito.

Non ho mai usato Doctrine, quindi non posso aiutarti in questo. Ma la mia ipotesi migliore sarebbe qualcosa del tipo:

addWhere('uh IS NULL')

o

addWhere('uh.id_user IS NULL')