我查询用户可以看到所有活动用户的帖子,但看不到那些非活动用户的帖子,但是他们不应该看到被阻止或阻止他们的用户的帖子,我该怎么做?,block_users表具有block_by_userid和blocked_userid列。
我尝试了将INNER JOIN与成员表一起发布的表,现在不再可以看到每个不活动的用户发布的表。,我将如何合并block_users表?
$GetPost = "SELECT Post.* FROM Post
INNER JOIN Members ON Post.Poster_user_id = Members.User_id
WHERE Status='active'";
答案 0 :(得分:0)
您可以尝试FULL OUTER JOIN 它的想法是获取表member和block_users中的所有项目,然后使用where子句过滤数据,很抱歉,如果我错过使用fields name,那么请检查表名,我假设block_users.block_by_userid包含被阻止的用户ID如果没有使用正确的字段
$GetPost = "SELECT Post.* FROM Post
INNER JOIN Members ON Post.Poster_user_id = Members.User_id
FULL OUTER JOIN block_users ON Members.User_id = block_users.user_id
WHERE Status='active'
AND
WHERE block_users.block_by_userid != Members.User_id";
答案 1 :(得分:0)
假设我正在为用户xyz执行此操作,该用户的user_id为123,则下面是一个查询,该查询将返回用户123的预期输出。
查询:
SELECT Post.* FROM Post
INNER JOIN Members ON Post.Poster_user_id = Members.User_id
WHERE Status='active' and post.poster_user_id NOT IN(select block_by_userid from block_users where blocked_user_id = 123 UNION select blocked_user_id from block_users where block_by_userid = 123)