Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Precisa de ajuda para criar uma consulta sql com join e onde está o relacionamento de muitos para muitos


A Doutrina IN função espera um formato de (1, 2, 3, 4, ...) após o IN declaração. Infelizmente, não se destina a condicionais de coluna para provar a associação.

No entanto, acredito que você esteja procurando pelo MEMBER OF Função da doutrina:
public function findAllBySectionAndCategory($section, $category) {
    $query = $this->getEntityManager()
        ->createQuery(
            'SELECT v FROM OSCMySportBundle:Video v WHERE v.section = :section AND :category MEMBER OF v.categories'
        )
        ->setParameter('section', $section)
        ->setParameter('category', $category);
    return $query->getResult();
}

Você pode passar um objeto Doctrine válido ou o identificador para $category usando esta funcionalidade.

O exemplo disso está oculto no Documentos de doutrina :
$query = $em->createQuery('SELECT u.id FROM CmsUser u WHERE :groupId MEMBER OF u.groups');
$query->setParameter('groupId', $group);
$ids = $query->getResult();