假设我有下表
User
__________
id
username
email
FriendGame
__________
id
useroneid
usertwoid
status
我想获取当前用户所属的游戏,所以我这样做:
SELECT *
FROM FriendGame
WHERE useroneid=1663702020516206
OR usertwoid=1663702020516206
AND STATUS =1;
这很好。现在我想加入用户名,但仅限于不是所提供的用户 (1663702020516206) 的用户,因为在 FriendGame 中,给定的用户以 useroneid 或 usertwoid 的形式存在。
最佳答案
您几乎可以将逻辑直接转换为 on
子句:
SELECT fg.*
FROM FriendGame fg JOIN
User u
ON (fg.useroneid = 1663702020516206 and fg.usertwoid = u.id) or
(fg.usertwoid = 1663702020516206 and fg.useroneid = u.id)
WHERE 1663702020516206 in (fg.useroneid, fg.usertwoid) AND
STATUS = 1;
实际上,where
子句对于获得正确的结果集来说并不是必需的,但我认为它使查询的意图更加清晰。
关于mysql - SQL加入正确的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31713854/