Mysql
 sql >> Database >  >> RDS >> Mysql

Symfony 2:INNER JOIN su tabelle non correlate con il generatore di query della dottrina

Oggi stavo lavorando a un'attività simile e mi sono ricordato di aver aperto questo problema. Non so da quale versione della dottrina funzioni, ma in questo momento puoi facilmente unirti alle classi figlie nella mappatura dell'ereditarietà. Quindi una query come questa funziona senza alcun problema:

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

Inizio la query nella mia classe genitore che utilizza la mappatura dell'ereditarietà. Nel mio post precedente era un punto di partenza diverso ma lo stesso problema se ricordo bene.

Poiché è stato un grosso problema quando ho iniziato questo numero, penso che potrebbe essere interessante anche per altre persone che non lo conoscono.