MySQL遵循用户和标签系统

时间:2018-11-28 10:26:31

标签: mysql mysqli

用户可以跟随另一个用户或标签。

我的数据库:

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)

我需要一个请求来获取所有帖子,在其中关注用户和标签... 有人可以跟我打招呼吗?

我可以根据要求为用户创建一个,为标签创建一个...但是不能一起创建

1 个答案:

答案 0 :(得分:0)

在这种情况下,您必须同时使用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