İç içe sorgu ile Zend_Db_Select oluşturmak nasıl?

2 Cevap php

Olası olmadığını bilmiyorum ama bir Zend_Db_Select nesnesi yapmak istiyorum ve ben bilmiyorum

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

2 Cevap

Belki böyle bir şey çalışmak:

$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() . ')')
);

Ayrıca sadece değiştirerek bunu yapabilir ana sorguda ($this->select()) sorgu değişkeni (daha: http://stackoverflow.com/a/1341463/216084)