0

クエリを作成するのに助けが必要です。問題は、DB の設計を変更する権限がないことです。それを念頭に置いて、私のテーブルは次のようになります。

Problems
ID
日付
LastStory
UserAssignedTo

Stories
ID
ProblemID
UserThatMadeTheStory
DateOfStory
ステータス

データの保存方法: システム上のすべてのユーザーが「問題」を作成できます。問題が作成されるたびに、Stories テーブルにも行が挿入され、Problems テーブルの「ProblemID」にリンクされ、Status が「2」で、「UserThatMadeTheStory」が「問題を作成した実際のユーザー」に割り当てられます。 "。後で、問題は他のユーザーに「再署名」されます。このプロセスは、説明と「UserThatMadeTheStory」を使用して「Stories」エントリを作成し、それを割り当てたユーザーに変更します。同時に、「Problems」テーブルで「UserAssignedTo」を変更して、割り当てられた新しいユーザーを保存しますに。次に、誰が実際に問題を開いたかを知るには、「問題 ID」を持つ「ストーリー」で最初のレコードを探す必要があります。

今、私が抱えている問題はこれです:

先月、ユーザーによって作成された問題を検索する必要があります。クエリはどうなりますか?

編集:

SELECT s.* 
FROM stories s
INNER JOIN (SELECT problemid, min(id) AS Id FROM stories GROUP BY problemid) s2 ON s.id = s2.id
INNER JOIN (SELECT UserThatMadeTheStory, DateOfStory, Id FROM stories) s3 ON s2.id = s3.id
WHERE s3.UserThatMadeTheStory = <the one you're interested in>
AND s3.DateOfStory = <dates you're interested in>

これは意図したとおりに機能しますが、今は別の問題があります...

あなたが私を助けることができれば... Xユーザーによって作成された問題をリストする必要があります。AND HAVENTは、「過去2日間」と言ってみましょう(または指定された任意の日付[クエリへの外部入力である可能性があります])で「ストーリー」を取得しました

4

2 に答える 2