如何使用嵌套查询创建Zend_Db_Select?

时间:2010-05-16 09:17:45

标签: php zend-framework zend-db

我不知道它是否可能,但我想把它变成一个Zend_Db_Select对象,我不知道如何

SELECT *
FROM MyTable MT1
WHERE MT1.date = (
     SELECT MAX(MT2.date)
     FROM MyTable MT2
)

2 个答案:

答案 0 :(得分:2)

也许这样的事情会起作用:

$nestedSelect = $db->select()->from(
    array('MT2' => 'MyTable'),
    new Zend_Db_Expr('MAX(MT2.date)')
);

$select = $db->select()->from(
    array('MT1', 'MyTable')
)->where(
    'MT1.date = ?', new Zend_Db_Expr('(' . $nestedSelect->toString() . ')')
);

答案 1 :(得分:0)

您也可以通过简单地替换主查询中的($this->select())子查询变量来执行此操作(更多:https://stackoverflow.com/a/1341463/216084