[英]Doctrine: Order by alias with same name as column
我有以下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
函數,但它看起來不像最清晰的解決方案。
有什么建議?
謝謝
你能試試這種方法嗎? 只需將“sum(t.column1)”放在順序中,而不是嘗試使用別名:
$dql->select('sum(t.column1) as column1, t.column2')
->from('Table t')
->groupBy('t.column2')
->orderBy('sum(t.column1)');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.