【问题标题】:zend framework select object and complex joinszend 框架选择对象和复杂连接
【发布时间】:2012-02-15 20:33:00
【问题描述】:

我正在尝试学习使用非常舒适的选择对象,至少对于不太复杂的查询。使用它而不是手动 sql 查询有什么限制吗?

我宁愿在我的应用程序的任何地方都使用它,但真的不知道如何将它用于像这样的更复杂的查询:

SELECT yt.rowid, yt.concat, added_latest, yt.volume, (yt.risk*yt.volume)
FROM obsoletes.batches yt
INNER JOIN(
       SELECT rowid, batch, concat, volume as latest_vol, MAX(added) AS added_latest
       FROM obsoletes.batches
       GROUP BY concat) ss 
       ON yt.added = ss.added_latest AND yt.batch = ss.batch
WHERE yt.concat = 'something'
GROUP BY yt.batch

这可能吗?如何?文档不是那么好。我也可以用吗 WHERE x IN ( ... ) 与选择对象?

提前致谢!

【问题讨论】:

    标签: php mysql zend-framework zend-db-table zend-db-select


    【解决方案1】:

    不确定,但类似这样:

    $inner = $db->select ()
        ->from ('obsoletes.batches', array (
        'rowid',
        'batch',
        'concat',
        new Zend_Db_Expr ('volume AS latest_vol'),
        new Zend_Db_Expr ('MAX(added) AS added_latest')
    ))
        ->group ('concat');
    
    
    $query = $db->select ()
        ->from ('obsoletes.batches', array (
        'rowid',
        'concat',
        'volume',
        new Zend_Db_Expr ('risk*volume')
    ))
        ->joinInner ($inner, 'yt.added = added_latest AND yt.batch = ss.batch')
        ->where ('concat = ?', 'something')
        ->group ('batch');
    

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多