正如您在下面看到的,我正在检查当前用户是否在 friends 表的 user_a
或 user_b
列中。
根据当前用户所在的位置,获取他对应的好友。
不知何故,我无法使此语法正常工作,想知道是否有人可以告诉我出了什么问题(我在 IF user_a = 2
附近的第 3 行收到错误。
SELECT *
FROM friends
IF user_a = 2 THEN
JOIN user_profiles ON friends.user_b = user.profiles.user_id
WHERE user_a = 2
AND accepted = 1;
ELSEIF user_b = 2 THEN
JOIN user_profiles ON friends.user_a = user_profiles.user_id
WHERE user_b = 2
AND accepted = 1;
END IF;
最佳答案
你可以用 UNION 来做:
select f.*, up_a.* from friends f
inner join user_profiles up_a on f.user_a=up_a.user_id
where f.user_b=2 and f.accepted=1
union
select f.*, up_b.* from friends f
inner join user_profiles up_b on f.user_b=up_b.user_id
where f.user_a=2 and f.accepted=1;
关于MySQL 条件连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234379/