1

id、user_id、upload、createdDate、および user テーブルを反映するエンティティ クラスを 持つデータベース テーブルuploadsがあるとします。

次に、次のようなクエリがあります。

SELECT u.id, 
  u.name, 
  u.createdDate,
  u.user_id,
  (SELECT COUNT(*) 
   FROM uploads
   WHERE user_id in 
       (SELECT id from uploads
        WHERE user_id = :id) 
    AND createdDate BETWEEN date_sub(NOW(),interval 1 day) 
    AND date_sub(NOW(),interval 0 day)) as countLastDayUploads
FROM uploads as u
WHERE u.user_id = :id

これは、 schema に反映されていない 追加の値countLastDayUploadsを返します。ここで 2 つの質問があります。 countLastDayUploads は、アノテーションなしでアップロード エンティティ クラスに格納する必要がありますか? はい…と思います。

次に、Symfony2 doctrine クエリ ビルダーを使用して、このクエリをどのように記述しますか。

4

2 に答える 2

0
SELECT u.id, 
  u.name, 
  u.createdDate,
  u.user_id,
  count(*) as count
FROM uploads as u
WHERE 
    u.user_id = :id
  AND 
    createdDate > (NOW() - INTERVAL 1 DAY)
GROUP BY u.user_id

私があなたを正しく理解していれば、このコードは5つ機能する必要があります

id, user_id, upload, createdDate- 間違った名前

id, userId, upload, createdDate- より良いが、間違っている

id, user_id, upload, created_date- 良い

これはmysqlの標準です。

于 2012-10-30T15:15:26.610 に答える
0

注釈を除いてエンティティに追加する必要があります。教義は結果をオブジェクトにマッピングする必要があります。

于 2012-10-30T22:31:14.957 に答える