Transformer SQL en QueryBuilder

Résolu/Fermé
Leo98 - 23 juil. 2021 à 12:58
 Leo98 - 26 juil. 2021 à 09:24
Bonjour,

J'ai une requête SQL que je dois faire en QueryBuilder, mais je n'arrive pas à cause de plusieurs leftJoin.

Voici ma requête SQL

SELECT r.lot,DATE_FORMAT(r.datetime_creation,'%d-%m-%Y %H:%i') as date_creation, u.societe, j_3.date_cloture , COUNT(r.id_reparation) as nb_element, j_2.nb_element_total
, IF(j_1.nb_element_cloture IS NULL,0,CONVERT((j_1.nb_element_cloture * 100 / j_2.nb_element_total),int)) as progression
FROM utilisateur u, reparation r
LEFT JOIN (SELECT COUNT(*) as nb_element_cloture, lot FROM reparation WHERE fk_reparation_statut_id IN (5,10,11,14,15,23,24,27)  GROUP BY lot) j_1 ON j_1.lot = r.lot
LEFT JOIN (SELECT COUNT(*) as nb_element_total, lot FROM reparation WHERE fk_reparation_statut_id > 0 GROUP BY lot) j_2 ON j_2.lot = r.lot
LEFT JOIN (SELECT DATE_FOreparationT(datetime_cloture ,'%d-%m-%Y %H:%i') as date_cloture,lot
              FROM reparation
              WHERE fk_reparation_statut_id IN (5,10,11,14,15,23,24,27)
              GROUP BY lot
             ORDER BY datetime_cloture DESC) j_3 ON j_3.lot = r.lot
  WHERE r.fk_reparation_statut_id IN(1, 16)
    AND r.revendeur = u.id_utilisateur


Est-il possible de mettre les SELECT dans les leftJoin avec QueryBuilder? et si oui comment dois-je procéder?

Merci !

1 réponse

yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 Ambassadeur 1 577
23 juil. 2021 à 13:14
bonjour,
as-tu un message d'erreur?
0
Bonjour, merci pour votre réponse, j'ai essayé plusieurs codes différant, mais je ne sais pas comment faire les sous-requêtes en createQueryBuilder et sur le net j'ai rien trouvé sauf ça, mais ça ne marche pas.

https://askcodez.com/la-sous-requete-de-doctrine-dans-innerjoin.html
0
yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 1 577 > Leo98
23 juil. 2021 à 14:35
montre-nous ce que tu as essayé et les résultats obtenus.
la requête que tu nous montres fonctionne-t-elle?
te donne-t-elle le résultat attendu?
0
Leo98 > yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025
Modifié le 23 juil. 2021 à 16:58
Merci pour votre aide, je ne vous donne pas ma queryBuilder origine car la logique n'était pas bonne, donc je l'ai supprimé, voici un petit code d'exemple :
j'ai ce code, comment transformer ça en QueryBuilder ?

Je n'arrive pas à trouver la solution et votre aide me serait précieuse.

SELECT * FROM `table`
WHERE `nom_colonne` = (
    SELECT `valeur`
    FROM `table2`
  )


Merci
0
yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 1 577 > Leo98
23 juil. 2021 à 17:03
ce code SQL fonctionne bien?
0
Leo98 > yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025
26 juil. 2021 à 09:24
Bonjour, merci pour votre aide, finalement, j'ai choisi faire le DBAL.

Cordialement,
0