私たちの学校用に Facebook のバージョンを作成しようとしている高校生。現在、試用版データベースをリリースする前にテーブルを結合する作業に取り掛かっています。
テーブルの投稿、ユーザー、および友人に参加するには:
ユーザー ユーザー名 1 ハリー 2 ディラン 3 サリナ 4 ドミニク 友達 ユーザーフレンド 1 2 1 3 1 4 2 1 3 1 4 1 2 4 4 2 3 2 2 3 投稿 | | ユーザー | 郵便番号 | 投稿 | +--------+--------+------+ | | 1 | 101 | これぞタイガーブック!| | | | 2 | 102 | 妊娠しています。| | | | 1 | 103 | のぞき見が好き | | | 4 | 104 | ジャイアント・バズ・ライトイヤーズ・ロック. | | | | 3 | 105 | ダイ・タッカー・ダイ | | | 1 | 106 | Murhur de de derpity ダープ | | | 2 | 107 | バナナ スパゲッティ イカ | | | 4 | 108 | チキン |
このコードを使用しました:
SELECT users.user,
users.name,
posts.postid,
posts.post,
tmp.friend
FROM (SELECT friend,
user
FROM friends
GROUP BY friend) AS tmp
JOIN users
ON tmp.user = users.user
JOIN posts
ON posts.user = users.user;
そして、次の結果が得られます。
+--------+---------+--------+-------------------------------------- --+--------+ | | ユーザー | 名前 | 郵便番号 | 投稿 | 友達 | +--------+---------+--------+-------------------------------------- --+--------+ | | 1 | ハリー | 101 | これぞタイガーブック!| | 2 | | | 1 | ハリー | 101 | これぞタイガーブック!| | 3 | | | 1 | ハリー | 101 | これぞタイガーブック!| | 4 | | | 2 | ディラン | 102 | 妊娠しています。| | 1 | | | 1 | ハリー | 103 | のぞき見が好き | 2 | | | 1 | ハリー | 103 | のぞき見が好き | 3 | | | 1 | ハリー | 103 | のぞき見が好き | 4 | | | 1 | ハリー | 106 | Murhur de de derpity ダープ | 2 | | | 1 | ハリー | 106 | Murhur de de derpity ダープ | 3 | | | 1 | ハリー | 106 | Murhur de de derpity ダープ | 4 | | | 2 | ディラン | 107 | バナナ スパゲッティ イカ | 1 | +--------+---------+--------+-------------------------------------- --+--------+
投稿 104、105、および 108 を切り取ります。これらはユーザー 3 および 4 によって投稿されたものです。また、ユーザー 2 が 3 および 4 と友達であるという事実と、それが示す 1 を無視します。
ユーザー 3 と 4 が表示されないのはなぜですか? 別のコードを試す必要がありますか?