Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beziehung zu vielen und ohne diese

In SQL benötigt diese Art von Abfrage einen sogenannten EXCEPTION JOIN . Einige RDBMSs implementieren dies tatsächlich als separaten Typ (z. B. DB2), während andere eine Problemumgehung verwenden müssen. In Ihrem Fall beträgt es (in SQL):

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

Was ergeben wird die erwarteten 'nicht in einem Haus'-Aufzeichnungen.

Es gibt ähnliche Beispiele an mehreren Stellen auf dieser Website.

Ich habe Doctrine noch nie benutzt, also kann ich dir da nicht helfen. Aber meine beste Vermutung wäre so etwas wie:

addWhere('uh IS NULL')

oder

addWhere('uh.id_user IS NULL')