SQLiteを使って構築した SNS でフォローしている人だけの投稿を表示したい

投稿者: user4367

SQLite(+PHP)でSNSを作っています。現状、テーブル定義は以下のようになっています。

フォローの情報を入れているfollowに、フォロー元のユーザーIDであるfrom_idと、フォロー先のユーザーIDであるto_idが存在しています。また、投稿テーブルとして、postがあり、投稿ユーザーIDとしてuser_idがあります。

このようなテーブルが定義されているときに、フォローしている人だけの投稿を取得し、表示するにはどうすればいいかがわかりません。どうすればいいのでしょうか?

解決

以下の SQL で取得可能です。

SELECT * 
FROM   post 
WHERE  EXISTS (SELECT 1 
               FROM   follow 
               WHERE  follow.to_id = post.user_id 
                      AND follow.from_id = 自分のid) 

コメントにお書きになられている方法だと「フォローしているうちの誰か1人の投稿」となる気がします。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *