Ich habe zwei Klassen in diesem Beispiel - DeliveryMethod und Country. Sie haben eine Many-to-many-Beziehung zueinander.
Ich möchte alle DeliveryMethods auswählen, denen keine Countries zugeordnet sind.
Ich kann auch das Gegenteil tun, d.h. alle Zustellungsmethoden auswählen, die mindestens ein Land haben.
SELECT m FROM DeliveryMethod m JOIN m.countries
Aber ich kann nicht herausfinden, wie ich eine Auswahl treffen kann, wenn das Länderfeld leer ist. In einfachem SQL würde ich Folgendes tun (deliverymethod_country ist die Verknüpfungstabelle):
SELECT m.* FROM deliverymethods m
LEFT JOIN deliverymethod_country dc ON dc.deliverymethod_id = m.id
WHERE dc.deliverymethod_id IS NULL
Allerdings funktioniert eine DQL-Entsprechung davon nicht, zum Beispiel:
SELECT m FROM DeliveryMethod m LEFT JOIN m.countries WHERE m.countries IS NULL
Ich erhalte diese Fehlermeldung:
[Syntax Error] line 0, col 75: Error: Expected end of string, got 'm'