zend_db获得"select ..., (select ...) as x from ... "



我有一个我无法使用zend_db_select

构建的查询
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查询。有可能吗?

谢谢

我建议加入。您可能会获得更好的性能,因为通常很难使数据库优化。使用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(...);

最新更新