【问题标题】:zend_db obtain "select ..., (select ...) as x from ... "zend_db 获得 "select ..., (select ...) as x from ..."
【发布时间】:2012-10-19 16:01:41
【问题描述】:

我有一个无法使用 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-framework zend-db


    【解决方案1】:

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

    【讨论】:

    • 我做了join方式,忘了zend_db_Expr
    猜你喜欢
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 2019-06-16
    相关资源
    最近更新 更多