2016-05-23 20 views
0

私はユーザーが自分のページに投稿を保存できるようにするお気に入りのシステムをやっています。データベース - mysqlの問題で3つのテーブルを持つ内部結合

私が使用しているテーブルは以下のとおりです(user_idfrist_namelast_nameusernameemailpassworduser_websiteuser_avatar)を含有する3列(painned_id``user_id``post_id

usersを含ま

saved_postsテーブル

最後にpostsテーブル(post_iduser_idpost_authorcategory_idpost_datepost_imagepost_avataruser_websitepost_keywordspost_content

私のSQLコード私はこの問題は、一人のユーザから保存された記事ということである保存posrt

SELECT * FROM posts INNER JOIN saved_posts 
    ON saved_posts.post_id = 
    posts.post_id INNER JOIN users on saved_posts.user_id = users.user_id WHERE 
    saved_posts.user_id = users.user_id AND saved_posts.post_id = posts.post_id 

を取得するために使用しています他のユーザーのために表示されます。

+0

"SELECT * FROM saved_posts INNER JOIN posts ON saved_posts.post_id = posts.post_id INNER JOINユーザーがsaved_posts.user_id = users.user_idにある" –

答えて

0

すべての記事を選択することがありますか?それ以外の場合は、すべてのユーザーが過去に共有したすべての投稿を見つけるだけです。

SELECT * FROM posts 
INNER JOIN saved_posts 
ON saved_posts.post_id = posts.post_id 
INNER JOIN users 
ON saved_posts.user_id = users.user_id 
WHERE users.user_id = :wanted_user_id 

wanted_user_idを忘れないでください。

+0

ありがとうございます。私はこの条件を書いたが動作しなかった "SELECT * FROM posts INNER JOIN saved_posts ON saved_posts.post_id = posts.post_id INNER JOINのユーザーはsaved_posts.user_id = users.user_idになっていますWHERE saved_posts.user_id = users.user_id AND saved_posts.post_id = posts.post_id " – jack

+0

私はユーザIDを取得するためにセッションを使用しました – jack

0

私が正しく質問を理解している場合、タスクはWHERE条件であなたの答えをフィルタリングしないユーザーの

SELECT * FROM posts p 
    INNER JOIN saved_posts sp ON p.post_id = sp.post_id 
      and sp.user_id = u.user_id 
    INNER JOIN users u on p.user_id = u.user_id 
関連する問題