php - Zend 1 - SQL FROM 表达式别名

标签 php mysql zend-framework

我正在查询的 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/

相关文章:

php - JSON 平面文件与数据库查询

php - 文件上传 : Size validator or setMaxFileSize()

MySQL OR 与 IN 性能

javascript - 将 HTML 表格转换为数组

javascript - 如何从twig模板发送邮件?

php - 计数的计数- PHP MYSQL

mysql - 将具有唯一字段的记录移动到第二个表中

php - 如何解析参数的 Zend URL?

php - 使用主从设置执行 mysql 事务?

php - 如何在收到电子邮件时实时解析电子邮件