gpt4 book ai didi

sql - 从 friend 那里获取帖子(您有权查看)

转载 作者:搜寻专家 更新时间:2023-10-30 23:10:29 24 4
gpt4 key购买 nike

我想获取用户好友的所有帖子,但仅限他有权查看的帖子。我的数据库中有以下表格(仅包含相关属性):

用户:

userid

发布

postid    authorid

友谊

friendshipid    userid    friendid

权限

postid    userid

每条友情在友情表中有2条记录(如果用户1和2是好友,表中会添加1 2和2 1)。每个帖子在Permission表中都有多条记录,该表中的userid表示有权查看该帖子的用户(不代表该用户就是该帖子的作者)。此用户必须是帖子作者的 friend 。

获得性能良好的结果的最佳查询是什么?如果我将 authorid 添加到表 Permission 中,我还能获得更好的性能吗?

最佳答案

获取所有@UserId的 friend 是作者并且@UserId有权查看该帖子的帖子:

SELECT postid
FROM Post
INNER JOIN Friendship ON Friendship.userid = @UserId AND Post.authorid = Friendship.friendid
INNER JOIN Permission ON Post.postid = Permission.postid AND Permission.userid = @UserId

请注意,性能取决于查询之外的事物,例如索引,但这应该是一个高效的查询。

关于sql - 从 friend 那里获取帖子(您有权查看),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com