この(私の)SQLの問題は、この週末に解決しなければ狂ってしまいます!SQLを使用して共有ブログのユーザーの投稿とコメントを取得
単純な共有ブログ(多くの著者が貢献していることを意味します)。
投稿:
:コメントをAUTHOR_ID
- IDのは、私のデータベース上の2つのテーブルを考えてみましょう
- 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
うまく見えますが、ユーザーが投稿を作成した行はわかりませんが、コメントは表示されません。
Thanxは事前にそのような -
あなたは、JOINの異なる種類を必要とします - 'FULL OUTER JOIN'を試してみてください。とにかく、さまざまな結合の違いをもっと読むhttp://en.wikipedia.org/wiki/Join_(SQL) – scibuff
私の週末、scibuffを保存しました!どうもありがとう。私はMySQLを使用しているので、FULL OUTER JOINはサポートされていません。しかし、LEFT OUTER JOINはうまくいきます。私はそれを検証することができるように、あなたのコメントを回答として追加してください。 Thnx。 – htaidirt