我有两个表 activity_log 和 user_followers 。我必须加入这两个表并使用他正在关注的用户活动获取用户的活动(假设user_id 6跟随user_id 4)。但是下面的查询只返回id为6的用户的活动。我想获得id为6的用户的活动加上他正在关注的用户的活动。
查询
SELECT activity_log.*
FROM activity_log
join user_followers ON activity_log.user_id = user_followers.follow_id
AND activity_log.user_id = 6;
activity_log:
答案 0 :(得分:0)
听起来你想要user_id 6的活动以及他所关注的用户的活动。那将是:
SELECT activity_log.*
FROM activity_log
LEFT OUTER JOIN user_followers
ON activity_log.user_id = user_followers.follow_id
WHERE (activity_log.user_id = 6 OR ISNULL(user_followers.user_id,0) = 6);
如果user_id 6没有关注者,则使用LEFT OUTER。