Die Verwendung von Unterabfragen mit Lehre / Fehler mit aliases
Ich versuche eine einfache Abfrage mit einer Unterabfrage in einer orWhere-Klausel (mit Lehre).
Wie immer, in der Lehre versucht, benennen Sie alle Aliase und völlig zerstört, die Abfragen...
Hier ein Beispiel:
$q = Doctrine_Query::create()
->from('Actualite a')
->where('a.categorie_id =?', $id)
->orWhere('a.categorie_id IN (select id from cat.categorie as cat where cat.categorie_id =?)', $id)
->execute();
Das in MySQL machen würde, so etwas wie:
SELECT *
FROM actualite a
WHERE a.categorie_id = 1 OR a.categorie_id IN (SELECT cat.id FROM categorie cat WHERE cat.categorie_id = 1);
Alles richtig an, aber dann wieder Lehre zerstört es:
Konnte nicht finden, Klasse Katze
Jedes mal, wenn ich versuche, etwas zu tun ein wenig Komplex mit der Lehre, ich habe Fehler mit Aliase. Irgendwelche Tipps oder Ideen, wie man dieses Problem beheben?
Dank!
- Was ist, wenn auf vollständigen Tabellennamen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den SQL-Beispiel Sie haben ist gut, aber die entsprechende Lehre-syntax hat ein paar Fehler. Hier ist eine clean version:
Sollten Sie verwenden
createSubquery()
ausdrücklich zu sagen, die Lehre über Ihre verschachtelte Unterabfrage. Also deine Abfrage sollte wie folgt Aussehen:Einem anderen Beispiel kann hier gefunden werden:
http://www.philipphoffmann.de/2012/08/taming-doctrine-subqueries/
Ich denke, dass Sie die Abfrage sollte so sein, fügen Sie die wählen Sie und entfernen Sie so
Versuchen, diese Ihnen helfen können.
Dank