簡體   English   中英

多對多查詢

[英]Many to Many to Many Query

我有以下表格:

用戶(標識,名稱,電子郵件)關注(標識,folder_id,following_id)帖子(標識,user_id,標題,正文)

現在關注意味着我(user_id = 23)關注另一個用戶(user_id = 12),也許還有更多。

我想查詢一個可以顯示我關注的所有人的所有帖子的查詢。

單個查詢可以嗎?

絕對可以,但是請確保您具有正確的索引,否則可能需要一段時間!

SELECT `user`.`id` AS `user_id`, `user`.`name`, `post`.`id` AS `post_id`, `post`.`title`, `post`.`body`
FROM `follow`
JOIN `user` ON `user`.`id`=`follow`.`following_id`
JOIN `post` ON `post`.`something...` # You're missing an "author" field in your posts table!
WHERE `follow`.`following_id` = 23

您沒有在問題中提到它,但是您必須有一列諸如poster_id來標識誰在您的Post表中發布了該帖子。 有了它,您可以執行以下操作:

SELECT p.* 
FROM posts p
INNER JOIN follow f ON p.poster_id = f.following_id
WHERE f.follower_id = 23;

這將為您提供來自用戶的所有帖子,然后是用戶23。

暫無
暫無

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

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