Zend_Db subquery

0 Cevap php

Ben ZendFW ile bir sql sorgusunu oluşturmak için çalışıyorum, ama ben (bütün veya fonksiyon) istediğiniz gibi çalışması için almak gibi olamaz. Bu select Zend_Db'nin ile oluşturmaya çalışıyorum çalıştığını sorgu ()

SELECT tc.trip_title, td.ID, td.trip_id, 
  (SELECT count(*) FROM 'trips_invites' ti 
   WHERE ti.destination_id=td.ID AND ti.accepted ='NR') AS "pending_invites" 
FROM `trips_current` AS `tc`, `trips_data` AS `td` 
WHERE (tc.ID=td.trip_id) AND (tc.creator_id = '1') 
ORDER BY `trip_id` ASC 

Ne ben çözemiyorum düzgün orada o alt sorgu nasıl olduğunu, ve ben denemek hiçbir şey iş gibi görünüyor.

Herhangi bir yardım büyük mutluluk duyacağız!

Teşekkürler!

Edit/Answer: Hiç kimse ben şu şekilde sorgu tarafından yeniden çalıştı aşağıda öneri dayalı benzer bir sorun var olacaktır:

SELECT `tc`.`trip_title`, `td`.`ID`, `td`.`trip_id`, count(TI.ID)
FROM `trips_current` AS `tc` 
INNER JOIN `trips_data` AS `td` ON td.trip_id = tc.ID 
LEFT JOIN trips_invites AS TI ON ti.destination_id = td.id
WHERE tc.creator_id = 1  AND ti.accepted='NR'
GROUP BY td.id
ORDER BY `trip_id` ASC

Ben bu şekilde oluşturulan ZendFW kullanarak hangi:

$select = $this->dblink->select() 
->from(array('tc' => 'trips_current'),
      array('trip_title'))
->join(array('td' => 'trips_data'), 
'td.trip_id = tc.id',                   
      array('ID','trip_id'))
->joinLeft(array('ti'=>'trips_invites'),
     'ti.destination_id = td.id',
     array('COUNT(ti.id)'))
->where('tc.creator_id =?',1)
->group('td.id')
->order('trip_id');

0 Cevap