0

我有一个无法用 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查询。可能吗?

谢谢

4

1 回答 1

0

我会推荐加入。您可能会获得更好的性能,因为数据库通常很难优化子选择。用 Zend_Db_Select 编写它也很容易。或者 newZend_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(...);
于 2012-10-19T16:32:55.400 回答