J'essaie de reproduire cette requête avec le querybuilder mais je m'y perd
La requête me donne la liste des enfants non inscrits à la plaine 5
Mes tests foireux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM `mercredi`.`enfant` LEFT JOIN ( SELECT * FROM plaine_enfant WHERE plaine_id = 5 ) ef ON enfant.id = ef.enfant_id WHERE ef.plaine_id IS NULL ORDER BY `enfant`.`nom` ASC
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $qb = $this->createQueryBuilder('e'); $qb->select('e'); $qb->leftJoin('e.plaines', 'ef', 'WITH', 'ef.plaine_id = '.$plaine->getId()); $qb->addSelect('ef'); $qb->andWhere('ef.plaine_id IS NULL'); $qb->add('where')->notIn( $qb2->select('ef') ->andwhere('ef.plaine = :plaine') ->setParameter('plaine', $plaine->getId()));
Partager