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

Symfony 2:INNER JOIN bei nicht verwandten Tabellen mit Doktrin-Abfrage-Builder

Heute habe ich an einer ähnlichen Aufgabe gearbeitet und mich daran erinnert, dass ich dieses Problem eröffnet habe. Ich weiß nicht, seit welcher Version der Doktrin es funktioniert, aber im Moment können Sie den untergeordneten Klassen problemlos in der Vererbungszuordnung beitreten. Eine Abfrage wie diese funktioniert also problemlos:

$query = $this->createQueryBuilder('c')
        ->select('c')
        ->leftJoin('MyBundleName:ChildOne', 'co', 'WITH', 'co.id = c.id')
        ->leftJoin('MyBundleName:ChildTwo', 'ct', 'WITH', 'ct.id = c.id')
        ->orderBy('c.createdAt', 'DESC')
        ->where('co.group = :group OR ct.group = :group')
        ->setParameter('group', $group)
        ->setMaxResults(20);

Ich starte die Abfrage in meiner übergeordneten Klasse, die Vererbungszuordnung verwendet. In meinem vorherigen Beitrag war es ein anderer Ausgangspunkt, aber das gleiche Problem, wenn ich mich recht erinnere.

Da es ein großes Problem war, als ich mit dieser Ausgabe begonnen habe, denke ich, dass es auch für andere Leute interessant sein könnte, die nichts davon wissen.