我正在查询的 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
关于php - Zend 1 - SQL FROM 表达式别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24323678/