我正在查询的FROM
子句中执行子选择。子选择被传递给查询作为Zend_Db_Expr
,因为它应该是,但是我似乎不能别名子选择。
的例子:
$a = $adapter->select()->order('abc.id DESC');
$b = $adapter->select()->from('b');
$a->from(new Zend_Db_Expr("($b) AS xxx", 'xxx.id'); // does not work - always aliases as "t"
别名总是't'的原因来自下面一行:https://github.com/zendframework/zf1/blob/master/library/Zend/Db/Select.php L787
任何想法?谢谢!
您可以像这样提供自己的别名:
$a = $adapter->select()->order('abc.id DESC');
$b = $adapter->select()->from('b');
$a->from(array('xxx'=>$b), 'id');
SELECT `xxx`.`id` FROM (SELECT `b`.* FROM `b`) AS `xxx` ORDER BY `abc`.`id` DESC