用户可以跟随另一个用户或标签。
我的数据库:
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)
我需要一个请求来获取所有帖子,在其中关注用户和标签... 有人可以跟我打招呼吗?
我可以根据要求为用户创建一个,为标签创建一个...但是不能一起创建
答案 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