【发布时间】:2012-01-24 22:25:50
【问题描述】:
这让我困惑了一段时间。
我的问题: 我有 2 个不同的表。一个用于用户帖子的表和一个用于订阅者的表。
订阅者表如下所示:
订阅者 ID -> 个人资料 ID
1 -> 2
1 -> 3
2 -> 3
2 -> 4
3 -> 2
我的帖子表如下所示:
PostID -> AuthorID -> PostDate -> PostBody
1 -> 2 -> 2012 年 12 月 20 日 -> 你好字
2 -> 3 -> 12/21/12 -> 再见世界
3 -> 1 -> 12/22/12 -> 哦等等
4 -> 4 -> 12/23/12 -> 有人还在吗?
基本上,它的工作原理是,ID 为 2 和 3 的用户订阅了 ID #2 的用户。ID #2 订阅了 ID #3 和 #4。如果用户订阅了某个用户,他们只能看到他们订阅的人的帖子。现在,我正在使用在类似问题中看到的以下内容:
SELECT POSTS.*
FROM POSTS
JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = ?
ORDER BY POSTS.POSTID DESC LIMIT 10
这很好用,但它也不会显示用户的帖子。我试过修改它,但它不起作用:\
如果您想知道,“?”代表用户的ID
因此,如果可以的话,如果有人能告诉我如何将用户自己的帖子与用户订阅的人的帖子一起包含在内,那就太好了
【问题讨论】:
-
最简单的方法是让用户自己订阅(考虑到您显示订阅帖子的模型,这很有意义)。
-
如果没有其他方法,这样做可能是我最后的手段
-
我可以看到的替代方法是使用子查询或多个查询。找到用户订阅的 profileID 列表,然后提取 profileID 在结果列表中或当前 profileID 的帖子列表。