Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Relação com muitos e ficar sem isso


Em SQL, esse tipo de consulta precisa do que é conhecido como EXCEPTION JOIN . Alguns RDBMSs realmente implementam isso como um tipo separado (como DB2), enquanto outros precisam usar uma solução alternativa. No seu caso, equivale a (em SQL):
SELECT User.* 
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL

Qual produzirá os esperados registros 'não em casa'.

Existem exemplos semelhantes em vários lugares neste site.

Eu nunca usei o Doctrine, então não posso te ajudar lá. Mas meu melhor palpite seria algo como:
addWhere('uh IS NULL')

ou
addWhere('uh.id_user IS NULL')