Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-02-2011 15:19:22

allfab
Membre
Date d'inscription: 02-10-2007
Messages: 40

[ZF 1.11.3] Requête SQL avec une sous-requête

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 :

Code:

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 !!

Code:

$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 :

Code:

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages