Lehre-Abfrage distinct-verknüpfte Entität
Bin ich wohl etwas Blick sehr einfach und wurde, starrte es zu viel, aber ich kann nicht diese DQL-query zu arbeiten. Bekomme ich auch eine exception, die besagt:
Cannot select entity through identification variables without choosing at least one root entity alias.
Hier ist meine Abfrage. Benutzer hat eine viele-zu-eins-relation zur Gruppe. Hinweis: dies ist eine unidirektionale relation! Das kann keinen Sinn machen, auf Sie, aber es macht Sinn in unserer Domäne Logik.
SELECT DISTINCT g
FROM Entity\User u
LEFT JOIN u.group g
WHERE u.active = :active
Können Sie mir sagen, was ich hier vermisst?
- Darf nicht fehlen ein
ON
hier nach dem LEFT JOIN? - Nein. Dies ist die Lehre DQL, nicht SQL.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da dies der erste Google-Spiel, wenn die Suche nach der Fehlermeldung "Nicht wählen, Einheit durch den...", entschied ich mich zu Antworten, obwohl das Thema war, geschrieben vor einigen Monaten.
Der trick ist die Verwendung von JOIN ... MIT ... (wie JOIN ... ON ... in SQL).
Ich hatte die Nachricht mit diesem code:
Ich das problem gelöst, indem Sie diesen code ein:
Ich brauchte, um anzugeben, volle namespaces und Klassen für beide stellen.
Wählen Sie AUS der
root entity alias
.. dh Sie können nicht WÄHLEN Sie nur aus einem Tisch, Sie treten auf, wie können Sie in plain sql.. so etwas wie dies sollte es tun:at least one root entity alias
in Ihrer Warnung - root-entity alias bedeutet nur was ist in der FROM-Klausel, für alle intensive Zwecke.. ich habe meine Antwort aktualisiertArbeitete ich, um das problem durch ausführen einer untergeordneten select-Anweisung:
Können Sie dies mit DQL-neue MIT Stichwort:
Ich hatte ein ähnliches problem und es gelöst, indem mehrere aus Zeilen wie diese:
Hennes
Ich diese