Pet*_*ler 4 php mysql doctrine doctrine-1.2
我有以下DQL(Doctrine1.2):
$dql->select('sum(t.column1) column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('column1');
Run Code Online (Sandbox Code Playgroud)
但生成的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)
Run Code Online (Sandbox Code Playgroud)
是否可以强制Doctrine使用别名column1
而不是列名t.column1
?
我需要这个,因为我想从两个非常相似的DQL的模型中获得相同的输出格式.(最近由同一模板呈现).另一个DQL看起来像这样:
$dql->select('t.column1, t.column2')
->from('Table t')
->orderBy('t.column1');
Run Code Online (Sandbox Code Playgroud)
可能的解决方法是选择sum(t.column1)
两次.首先使用别名column1
,第二次使用其他别名,为什么在passwd之后使用orderBy
函数,但它看起来不是最清晰的解决方案.
有什么建议?
谢谢
你能试试这种方法吗?只需将"sum(t.column1)"放在顺序中,而不是尝试使用别名:
$dql->select('sum(t.column1) as column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('sum(t.column1)');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2267 次 |
最近记录: |