この (My)SQL の問題は、今週末に解決しなければ気が狂いそうです!
シンプルな共有ブログ (多くの著者が貢献していることを意味します)。データベース上の 2 つのテーブルを考えてみましょう。
投稿:
- ID
- author_id
- 題名
- コンテンツ
コメント:
- ID
- author_id
- post_id
- コンテンツ
目標: 貢献者 (=> 固定の author_id) のすべてのアクティビティを表示したい。アクティビティとは、次のことを意味します。
- ユーザーが投稿を作成してコメントした場合: 投稿のタイトルとユーザーのコメントを表示します
- ユーザーが投稿を作成したがコメントしていない場合: 投稿のタイトルのみを表示する
- ユーザーが投稿を作成せずにコメントした場合: 投稿のタイトルとユーザーのコメントを表示します
私はこのSQLスクリプトを試しました:
SELECT p.id AS post_id, p.author_id AS post_author_id, c.author_id AS comment_author_id, title, c.content
FROM Posts p JOIN Comments c ON p.id = c.post_id
WHERE p.author_id = $userId
OR c.author_id = $userId
うまく見えますが、ユーザーが投稿を作成した行は表示されませんが、コメントはありません。
何か案が?事前にサンクス。