0

我正在尝试学习使用非常舒适的选择对象,至少对于不太复杂的查询。使用它而不是手动 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 ( ... ) 与选择对象一起使用吗?

提前致谢!

4

1 回答 1

2

不确定,但类似的东西:

$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');
于 2012-02-16T09:57:52.183 回答