mysql跟踪用户和标签系统

vhmi4jdf  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(353)

用户可以跟随其他用户或标记。
我的数据库:

POSTS (id, user_id, name, content)
USERS (id, username)
TAGS (id, name)
TAGS_ASSIGNMENTS (post_id, tag_id)
USERS_FOLLOW (user_id, follow_user_id)
TAGS_FOLLOW (user_id, follow_tag_id)

我需要一个请求得到所有的职位,在那里我跟踪用户和标签。。。有人能用这个来劝我吗?
我可以根据用户的要求创建一个标签。。。但不是在一起

wpx232ag

wpx232ag1#

在这种情况下,您必须同时使用join和union,请尝试以下操作:

select a.name, a.content from POSTS a where user_id in (
    select follow_user_id from USERS_FOLLOW where user_id = @userid)
UNION DISTINCT
select a.name, a.content from POSTS a where id in (
    select post_id from TAGS_ASSIGNMENTS a, TAGS_FOLLOW b where 
        a.tag_id = b.follow_tag_id and b.user_id = @userid)

这里@userid是输入的用户id

相关问题