2012-10-19 29 views
0

我有,我不能在此刻我和你在一起Zend_Db_Select對象建立Zend_Db的獲取「從選擇...(選擇...)爲x ......」

SELECT `f`.*,   
     (SELECT Sum(x) AS `y` 
     FROM z AS pf 
     WHERE pf.q_id = f.id) AS w 
FROM f ... 
WHERE ... 
GROUP BY `f`.`id` 

這樣一個查詢手動運行它$db->fetchAll($sql)

我如何獲得

select f.* , (select ...) as `something` from ... 

使用->column('f.*, (select...)')我的想法,但它沒有工作,

它可以用左也許參加工作,如果我這樣做(選擇...,ID)然後加入該ID,但我想獲得這個非常SQL查詢。可能嗎?

謝謝

回答

0

我會推薦JOIN。由於子選擇通常難以優化數據庫,因此可能會獲得更好的性能。用Zend_Db_Select編寫它也很容易。或者新Zend_Db_Expr可能適用於這一點。

$select = $db->select() 
    ->from('f', array('f.foo', 'f.bar', new Zend_Db_Expr('SELECT Sum(x) AS `y` 
                 FROM z AS pf 
                 WHERE pf.q_id = f.id') => 'f')) 
    ->where(...); 
+0

我做了連接方式,忘了關於zend_db_Expr – max4ever