Mysql
 sql >> Base de données >  >> RDS >> Mysql

Symfony 2 :INNER JOIN sur une table non liée avec le générateur de requêtes Doctrine

Aujourd'hui, je travaillais sur une tâche similaire et je me suis souvenu que j'avais ouvert ce problème. Je ne sais pas depuis quelle version de doctrine cela fonctionne, mais pour le moment, vous pouvez facilement rejoindre les classes enfants dans le mappage d'héritage. Donc une requête comme celle-ci fonctionne sans aucun problème :

$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);

Je démarre la requête dans ma classe parent qui utilise le mappage d'héritage. Dans mon post précédent, c'était un point de départ différent mais le même problème si je me souviens bien.

Parce que c'était un gros problème quand j'ai commencé ce numéro, je pense que cela pourrait aussi être intéressant pour d'autres personnes qui ne le savent pas.