0

私はSymfonyProject1.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列を非表示にする方法、これはバグですか、それともトリックが必要ですか?

例外的な結果:

4

1 に答える 1

1

Doctrineは自動的に主キーを選択リストに追加します。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    |
+========+=========+
于 2013-01-09T09:45:39.483 に答える