Как создать Zend_Db_Select с вложенными запросами? - PullRequest
2 голосов
/ 16 мая 2010

Я не знаю, возможно ли это, но я бы хотел сделать его объектом Zend_Db_Select, и я не знаю, как

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

Ответы [ 2 ]

2 голосов
/ 16 мая 2010

Может быть, что-то подобное сработает:

$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() . ')')
);
0 голосов
/ 21 декабря 2012

Вы также можете сделать это, просто заменив ($this->select()) переменную подзапроса в основном запросе (подробнее: https://stackoverflow.com/a/1341463/216084)

...