Transformer SQL en QueryBuilder
Résolu
Leo98
-
Leo98 -
Leo98 -
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
Est-il possible de mettre les SELECT dans les leftJoin avec QueryBuilder? et si oui comment dois-je procéder?
Merci !
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 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
as-tu un message d'erreur?-
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- 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
-