簡體   English   中英

數據庫-內部連接與3個表在mysql問題

[英]database - Inner join with 3 tables in mysql issue

我正在做一個喜歡的系統,該系統允許用戶將帖子保存到他們的頁面。

我正在使用的表是:

saved_posts表表包含3列( painned_id``user_id``post_id

users包含( user_idfrist_namelast_nameusernameemailpassworduser_websiteuser_avatar

最后posts表格( post_iduser_idpost_authorcategory_idpost_datepost_imagepost_avataruser_websitepost_keywordspost_content

我用來獲取已保存的posrt的sql代碼

 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 

問題是,一個用戶的已保存帖子對其他用戶來說就像他們也保存了它們一樣。

如果我正確理解了該問題,則任務是選擇所有帖子中的哪些用戶

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

您不應該使用WHERE條件過濾答案嗎? 否則,它只是查找任何用戶共享EVER的所有帖子。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM