Salut :)
D'après vous est-il possible d'écrire une requête comme celle ci avec zend_db et select() ?
Pour info voila mon code actuel (qui en fonctionne donc pas) :Code:
1
2
3
4
5
6
7 select * from ( select * from reservations where date_fin >= NOW() ) as r join ( select * from clients where concat(prenom,' ',nom) like 'isab%' ) as c on r.id_client = c.id
Et voila la requête générée :Code:
1
2
3
4
5
6
7
8
9
10
11 $query = $db_reservations->select() ->setIntegrityCheck(false) ->from( $db_reservations->select()->from(array('r'=>'reservations'),array('id_resa' => 'id' , 'chambre' , 'date_debut' , 'date_fin' , 'periode_jrs' => 'DATEDIFF(date_fin, date_debut )' , 'jrs_restants' => 'DATEDIFF(date_fin, NOW() )')) ->where('date_fin >= NOW()') ) ->join(new Zend_Db_Expr('('. $db_reservations->select() ->from('clients', array('id_client' => 'id' , 'client_nom' => 'nom' , 'client_prenom' => 'prenom')) .')'),'r.id_client = c.id') ;
Code:SELECT `t`.*, `t_2`.* FROM (SELECT `r`.`id` AS `id_resa`, `r`.`chambre`, `r`.`date_debut`, `r`.`date_fin`, DATEDIFF(date_fin, date_debut ) AS `periode_jrs`, DATEDIFF(date_fin, NOW() ) AS `jrs_restants` FROM `reservations` AS `r` WHERE (date_fin >= NOW())) AS `t` INNER JOIN () AS `t_2` ON r.id_client = c.id