2012-01-02 53 views
0

请告诉我如何在ZEND中编写此查询。Zend中的嵌套查询

Query= select p.project_id,paw.project_name 
     from lifecycle l,project_delivery_center pdc,project p, 
(select distinct project_id,max(lifecycle_id) as lifecycle_id from project_lifecycle group by project_id) npl,project_after_win paw 
     where p.project_id=npl.project_id and p.project_id=paw.project_id and npl.lifecycle_id=l.lifecycle_id and l.phase_id>=3 and pdc.project_id=p.project_id and pdc.delivery_center_id=".$_SESSION['dcId']." order by paw.project_name 
+0

与Zend你将怎么做? 有很多方法可以在zend中创建查询: $ DB->查询($ QUERY_STRING); – redmoon7777 2012-01-02 09:28:07

+0

只是想构建这个查询 – Arnab 2012-01-02 10:02:08

回答

0

假设你的意思是Zend_Db的与Zend,这应该是有关的权利:

$subSelect = $db->select(); 
$subSelect->from('project_lifecycle', array(
     'project_id', 
     'lifecycle_id' => 'MAX(lifecycle_id)', 
    )) 
    ->group('project_id'); 

$select = $db->select(); 
$select->from(array('l' => 'lifecycle'), null) 
    ->join(array('npl' => $subSelect), null) 
    ->join(array('pdc' => 'project_delivery_center'), 
      'pdc.project_id = p.project_id', null) 
    ->join(array('p' => 'project'), 'p.project_id = npl.project_id', 
      array('p.project_id')) 
    ->join(array('paw' => 'project_after_win'), 
      'paw.project_id = p.project_id', array('paw.project_name')) 
    ->where('npl.lifecycle_id = l.lifecycle_id') 
    ->where('l.phase_id >= ?', 3) 
    ->where('pdc.delivery_center_id = ?', $_SESSION['dcId']) 
    ->order('paw.project_name');