1

同じselectステートメントで別のテーブルのレコード数をカウントしたいのですが、左結合を使用し、selectステートメントでcount(ag。*)を入力しました。 例を参照してください。

$q = Doctrine_Query::create()
            ->select("a.answer_id,a.date_added , count(ag.content_id) AS agree_count")
            ->from('Answer a')
             ->leftJoin("a.Agree ag ON a.answer_id = ag.content_id AND ag.content_type = 'answer' ")
            ->where('a.question_id= ? ', $questionId)

しかし、それは最初のレコードを返すだけです、私はそれを修正できますか?または別のテーブルを作成して、カウント専用にするのですか?

4

3 に答える 3

5

GROUP BYクエリにがありません。

詳細はこちら。

GROUP BY句がない場合、通常は1行だけを取得します。

于 2012-04-04T14:51:32.507 に答える
0

Group Byを使用しない場合、Count(*)は1つのレコードのみを返します。すべてのレコードをカウントするように要求しているため、結果は1つだけになります。

于 2012-04-04T14:52:57.920 に答える
0

count()SQL関数は、データベースからの結果の返される方法を変更します。データベースがないと、。GROUP BY内の他の列に関係なく、データベースは1つのレコードのみを返しますSELECT

追加する場合:

group by a.answer_id

SQLクエリの最後まで、それはDWYMかもしれません。

于 2012-04-04T14:56:44.933 に答える