Salut j'ai cette requête et je veux la traduirre en DQL
SELECT * FROM Commissions c where c.id not in
(SELECT a.commission_id FROM Avis a WHERE a.dossier_id =59)
j'ai les entite suivant
![]()
Salut j'ai cette requête et je veux la traduirre en DQL
SELECT * FROM Commissions c where c.id not in
(SELECT a.commission_id FROM Avis a WHERE a.dossier_id =59)
j'ai les entite suivant
![]()
Je ne connais pas DQL , rien de tel qu'un vraie requête.
Mais un truc du genre, lu dans la doc Doctrine
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $query = $em->createQuery(SELECT c FROM MyProject\Model\Commissions c where c.id not in (SELECT a.commission_id FROM MyProject\Model\Avis a WHERE a.dossier_id =59); $users = $query->getResult();
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde
Mes Articles/Critiques :
Merise - Guide pratique
PHPExcel
PostgreSQL : Administration et exploitation d'une base de données
PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle
en même temps on va pas lui faire tout le boulot. on est pas des jambons
Le minimum est de se documenter et au moins d'essayer de faire la requête.
Voila ce que j'ai deja fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $query = $this->getDoctrine()->getManager()->createQueryBuilder(); $subquery = $this->getDoctrine()->getManager()->createQueryBuilder(); $subquery->select('a.commission') ->from('appBundle:Avis', 'a') ->where('a.dossier = :id') ->setParameter('id', 59); $query->select('c')->from('appBundle:Commissions', 'c'); $query->where( $query->expr()->notIn('c.id', $subquery->getDQL()) ); $r=query->getQuery()->getResult();
il me dit cela :
[Semantical Error] line 0, col 9 near 'commission FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
et bien, séparerons ta requête en 2 et testons la séparément :
la 1ere :
ça donne quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $subquery->select('a.commission') ->from('appBundle:Avis', 'a') ->where('a.dossier = :id') ->setParameter('id', 59); $r=subquery->getQuery()->getResult();
la 2eme
ça donne quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $query->select('c')->from('appBundle:Commissions', 'c'); ); $r=query->getQuery()->getResult();
Code : Sélectionner tout - Visualiser dans une fenêtre à part $query->select('c')->from('appBundle:Commissions', 'c');
- fonction est fonction parfaitement mais l'erreur est au niveau de subquery
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $subquery->select('a.commission') ->from('appBundle:Avis', 'a') ->where('a.dossier = :id') ->setParameter('id', 59);
Partager