2013-01-09 22 views
0

我使用Symfony的項目1.4和PostgreSQL錯誤學說查詢使用組時

我使用

$q = Doctrine_Query::create() 
->select("count(sex) as total, sex") 
->from('Biodata') 
->groupBy('sex')   
->execute(); 

得到了在學說的錯誤查詢始終存在顯示錯誤這樣當調試:

SQLSTATE[42803]: Grouping error: 7 ERROR: column "e.id" must appear in the GROUP BY clause or be used in an aggregate function 
LINE 1: SELECT e.id AS e__id, e.sex AS e__sex, COUNT(e.sex) AS e__0 ... 
^. Failing Query: "SELECT e.id AS e__id, e.sex AS e__sex, COUNT(e.sex) AS e__0 FROM biodata e GROUP BY e.sex" 

如何解決它並隱藏e.id列,這個錯誤還是需要一個技巧?

除外結果:

回答

0

主義自動主鍵添加到選擇列表中。我們使用MSSQL有同樣的錯誤。

嘗試添加不喝水結果:

$q = Doctrine_Query::create() 
->setHydrationMode(Doctrine_Core::HYDRATE_NONE) 
->select("count(sex) as total, sex") 
->from('Biodata') 
->groupBy('sex') 
->execute(); 

你不會有列名,但這樣的事情,我認爲:

+========+=========+ 
| 0 | 1 | 
+========+=========+ 
| 183 | 1 | 
+--------+---------+ 
| 54 | 2 | 
+========+=========+ 
+0

是啊,但效果不好, 我需要的結果就這樣 [在這裏輸入的形象描述] [1] [1]:http://i.stack.imgur.com/zsABU.png – Rampak

+0

@SujiwoTedjo我已經更新了我的答案w^ith一個新的方式 – j0k

+0

好的謝謝,它的工作原理,我使用--- Doctrine_Manager :: getInstance() - > getCurrentConnection() - > fetchAssoc(「選擇計數(性別)作爲總和,性別從biodata組性別」); ---更簡單 – Rampak