簡體   English   中英

Doctrine:按別名命名,列名相同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM