我在 MySQL 中有 5 个表,但我相信这是一个 SQL 问题
用户
用户信息
USER_RIGHTS
101 = 正确读取
102 = 正确写入
组
帖子
现在我想为用户 2 选择例如,用户 2 在该组中具有读取权限 101 的任何用户发布的所有帖子
例如我有 3 个帖子
帖子 1 发布在第 1 组中 帖子 2 发布在第 1 组中 帖子 3 发布在第 2 组中 帖子 4 发布在第 1 组中
和
WHERE user2 has 101 right in group 1 ==> SHOW post1 2 3
或者
WHERE user2 has 101 right in group 2 ==> SHOW post2
或者
WHERE user2 has 101 right in both group 1 and group 2 ==> SHOW post2
到目前为止我所拥有的是
SELECT * FROM posts
INNER
JOIN user_info
ON posts.posted_by = user_info.user_id
INNER
JOIN groups
ON posts.posted_in = groups.group_id
INNER
JOIN user_rights
ON user_rights.user_id = user_info.user_id
WHERE user_rights.right = '101' AND user_info.user_id = ".$UserId." ORDER BY id DESC;
这段代码将所有帖子返回给我 2 次。