我正在做一个项目,我需要根据给定行的内容对两列之一进行表连接。基本上,给定一个特定的用户名,我想获得他们正在玩的所有游戏中所有对手的信息。我在这里使用的两个表是 GameSession 和 Users。GameSession 对每个玩家(Player1 和 Player2)都有一个列,它们是 Users 表列 Username 中的外键,其中还包含一个 Rank 列。这是我的选择声明:
SELECT CASE WHEN GameSession.Player1 = 'BOB' THEN GameSession.Player2
ELSE GameSession.Player1
END AS Opponent, Users.Rank
FROM GameSession
INNER JOIN Users
ON Users.Username=Opponent
WHERE GameSession.Player1 = 'BOB' OR GameSession.Player2 = 'BOB'
我在这里使用 BOB 作为一次性价值。
我通过 phpMyAdmin 得到的 SQL 错误是我正在测试的地方,如下所示:
#1054 - Unknown column 'Opponent' in 'on clause'
我相当有信心我的逻辑是正确的,但我非常有时间找到有关适用于我的情况的语法的任何信息。如果有人能帮我一把,我会非常感激,我已经为此苦苦思索了好几个小时。提前致谢 :)