原则:按与列同名的别名排序
我有以下 DQL (Doctrine1.2):
$dql->select('sum(t.column1) column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('column1');
但生成的 SQL 与以下 DQL 相同:
$dql->select('sum(t.column1) column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('t.column1'); //Ordered by column1 not by sum(t.column1)
是否可以强制 Doctrine 使用别名 column1
而不是列名 t.column1 ?
我需要这个,因为我希望两个非常相似的 DQL 的模型具有相同的输出格式。 (最近由同一模板渲染)。另一个 DQL 如下所示:
$dql->select('t.column1, t.column2')
->from('Table t')
->orderBy('t.column1');
可能的解决方法是选择 sum(t.column1)
两次。第一次使用别名 column1
,第二次使用其他别名,为什么是在 passwd 到 orderBy
函数之后,但这看起来不是最清晰的解决方案。
有什么建议吗?
谢谢
I have following DQL (Doctrine1.2):
$dql->select('sum(t.column1) column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('column1');
But the generated SQL is same like for the following DQL:
$dql->select('sum(t.column1) column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('t.column1'); //Ordered by column1 not by sum(t.column1)
Is it possible to force Doctrine to use alias column1
instead of the column name t.column1
?
I need this, because I would like to have same output format from model for two very similar DQLs. (lately rendered by the same template). The other DQL looks like this:
$dql->select('t.column1, t.column2')
->from('Table t')
->orderBy('t.column1');
Possible workaround is to select sum(t.column1)
twice. First with alias column1
and second time with some other alias, why is after passwd to the orderBy
function, but it's does not look like the clearest solution.
Any suggestions?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你能尝试一下这个方法吗?只需将“sum(t.column1)”放在 order by 中,而不是尝试使用别名:
Could you try this approach? Just put the "sum(t.column1)" in the order by, instead of trying to use the alias: