2012-03-02 6 views
0

私はアプリケーションを構築しており、ユーザが自分の活動を見ることができるページの統一された通知/ログタイプが必要です。ページは次の例のように表示されている必要があります。Doctrineクエリグループby日付

Today 
[Username] has done [activity] 13:20 
[Username] has done [activity] 11:27 
[Username] has done [activity] 10:53 

Yesterday 
[Username] has done [activity] 13:20 
[Username] has done [activity] 11:27 
[Username] has done [activity] 10:53 

14 februari 
[Username] has done [activity] 13:20 
[Username] has done [activity] 11:27 
[Username] has done [activity] 10:53 

私はどこから始めるのか全く分かりません。私はある種のログテーブルを考えていて、テーブル内で起こるすべてのことを記録します。しかし、上記の結果を得るためにどのようにクエリを行う必要がありますか? 私は正しい方向に向けるために、本当に誰かか何かが必要です。

答えて

0

あなたは正しい方向にある: はちょうどこのようなあなたのログテーブルを作成します。

create table log(
id int not null primary key identity(1,1), 
userID int not null, 
logdate datetime, 
activityID int not null) 

は、ユーザーおよびすべての可能な活動が含まれているアクティビティテーブルが含まれているユーザーテーブルを持っていると仮定し

その後、あなたは3つのテーブル参加クエリを生成することができます:

select * 
from log l 
    join UserTable u on l.userId=u.UserId 
    join ActivityTable a on l.ActivityId=a.ActivityID 

をして、セレクに基づいてテキストの書式を設定t

関連する問題