繁体   English   中英

我可以使用什么Sql Join来合并我的三个表

[英]What Sql Join can I use to combine my three tables

我进行了一个查询,即用户可以看到所有活动用户的帖子,但不能看到那些不活动的用户的帖子,但是他们也不应看到被阻止或阻止他们的用户的帖子,我该怎么做?,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'";

您可以尝试FULL OUTER JOIN这个想法,以获取表member和block_users中的所有项目,然后使用where子句过滤数据,如果我错过了使用字段名,我很抱歉,所以请检查表名,我假设为block_users。如果未使用正确的字段,block_by_userid将包含阻止的用户标识

$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";

假设我正在为用户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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM