私はサイトをコーディングしています。ユーザーの行動を示すタイムラインを作りたいと思います。コメントは投稿されました(サイト内の記事)、投稿したメッセージフォーラム)と彼が投げた[up | down]投票。異なる列のテーブルを1つのクエリに結合する
今、私は3つのテーブル(非関連のフィールドはスキップ)持っている:私はauthor_id
与えられたコメントからarticle_id
フィールドを組み合わせた結果を返す、というクエリを実行したいと思います
COMMENTS
id | author_id | article_id | timestamp
MESSAGES
id | author_id | thread_id | timestamp
VOTES
id | author_id | comment_id | message_id | type | timestamp
を、 comment_id
,message_id
およびtype
のVOTESフィールドおよび共通timestamp
フィールドからのthread_id
フィールドのすべてがタイムスタンプでソートされています。私は、PostgreSQLを使用していて、これまでのところ、私は結果のこの種を生成することができませんでしてきた
article_id | thread_id | comment_id | message_id | type | timestamp
:結果は次のようなものでなければなりません。
誰かが正しい方向に向いていますか?
EDIT
私は、データベース内の次のデータがあった場合、私が達成したいものを明確にする:
article_id | thread_id | comment_id | message_id | type | timestamp
1 | | | | | 11:00:10
2 | | | | | 11:00:20
| 20 | | | | 12:00:10
| 21 | | | | 12:00:20
| | 1 | | 1 | 13:00:10
| | | 3 | 2 | 13:00:20
:
COMMENTS
id | author_id | article_id | timestamp
1 | 1 | 1 | 11:00:10
2 | 1 | 2 | 11:00:20
MESSAGES
id | author_id | thread_id | timestamp
3 | 1 | 20 | 12:00:10
4 | 1 | 21 | 12:00:20
VOTES
id | author_id | comment_id | message_id | type | timestamp
5 | 1 | 1 | | 1 | 13:00:10
6 | 1 | | 3 | 2 | 13:00:20
を次に結果は、このする必要があります前もって感謝します。
3つのタイムスタンプのうち、どれを選択したいか、またはすべてを選びますか? –
@TimBiegeleisen:ユーザーのタイムラインを生成するためにはすべてが必要です。元の投稿を更新して、達成したいことを説明しました。 –