Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Après de nombreux mois sans mettre mes mains dans le Zend Framework, je m'y suis remis depuis peu et je n'arrive pas à construire la requête suivante :
SELECT t1.ident,t1.id_indic,t1.date1,t1.maj,t1.description,t1.valeur_dep,t2.libelle AS action_libelle FROM table1 AS t1 , table2 AS t2 WHERE t1.date1 = (SELECT MAX(t3.date1) FROM table1 AS t3 WHERE t3.id_indic = t1.id_indic) AND t1.t_action_id_action = t2.id_action AND t1.t_axe_id_axe = 'axe 1' ORDER BY t1.ident;
J'utilise Zend_Db_Select mais je n'arrive pas à paramétrer cette requête correctement !!
$select = $this->_db->select() ->from(array('t1' => table1), array('ident' => 'ident', 'id_indic' => 'id_indic', 'date1' => 'date1', 'maj' => 'maj', 'description' => 'description', 'valeur_dep' => 'valeur_dep')) ->where("t1.date1 = (SELECT MAX(t2.date1) FROM table1 AS t2 WHERE t2.id_indic = t1.id_indic)", NULL) ->where("t1.t_action_id_action = t3.id_action", NULL) ->where("t1.t_axe_id_axe = ?", $axe) ->order(array('t1' => 'ident'));
Et du coup, j'obtiens la requête suivante :
SELECT "t1"."ident", "t1"."id_indic", "t1"."date1", "t1"."maj", "t1"."description", "t1"."valeur_dep" FROM "t_indic_pa" AS "t1" WHERE (t1.date1 = (SELECT MAX(t2.date1) FROM t_indic_pa AS t3 WHERE t3.id_indic = t1.id_indic)) AND (t1.t_action_id_action = t3.id_action) AND (t1.t_axe_id_axe = 'axe 1') ORDER BY "ident" ASC
Mais du coup, il me manque la référence à la table "table3" pour ressortir t3.libelle AS action_libelle !!!
Si quelqu'un a une idée !
Merci
Hors ligne