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

Besoin d'aide pour créer une requête SQL avec une jointure et une relation plusieurs à plusieurs

La Doctrine IN la fonction attend un format (1, 2, 3, 4, ...) après le IN déclaration. Malheureusement, les conditions de colonne ne sont pas destinées à prouver l'appartenance.

Cependant, je pense que vous recherchez le MEMBER OF Fonction Doctrine :

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();
}

Vous pouvez passer un objet Doctrine valide ou l'identifiant dans $category en utilisant cette fonctionnalité.

L'exemple de ceci est caché profondément dans le Doctrines :

$query = $em->createQuery('SELECT u.id FROM CmsUser u WHERE :groupId MEMBER OF u.groups');
$query->setParameter('groupId', $group);
$ids = $query->getResult();