Salut 
D'après vous est-il possible d'écrire une requête comme celle ci avec zend_db et select() ?
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 |
Pour info voila mon code actuel (qui en fonctionne donc pas) :
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')
; |
Et voila la requête générée :
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
Partager