0

私たちの学校用に 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 が表示されないのはなぜですか? 別のコードを試す必要がありますか?

4

1 に答える 1