lol*_*ter 2 mysql sql database join social-networking
表结构:
users: uid, name
friendships: uid1, uid2
game_membership: gid, uid
Run Code Online (Sandbox Code Playgroud)
基本上我正在尝试将查询作为函数gid,并返回:
uid1, name1, uid2, name2
Run Code Online (Sandbox Code Playgroud)
只返回给定表中的uid's' .这是我到目前为止所得到的:game_membershipgid
SELECT
f.uid1 AS id1,
u1.name AS name1,
f.uid2 AS id2,
u2.name AS name2
FROM
friendships AS f
WHERE
u1.uid in (SELECT uid FROM game_membership WHERE gid = <GID>)
AND u2.uid in (SELECT uid FROM game_membership WHERE gid = <GID>)
JOIN users AS u1 ON f.uid1 = u1.uid
JOIN users AS u2 ON f.uid2 = u2.uid
Run Code Online (Sandbox Code Playgroud)
我现在刚收到MySQL语法错误.谁能指出我正确的方向?我觉得我可能要uid在game_membership桌子上再做一两个JOIN ,每个一个uid?
我建议你加入Game_membership表而不是where子句:
SELECT
f.uid1 AS id1,
u1.name AS name1,
f.uid2 AS id2,
u2.name AS name2
FROM
friendships AS f
JOIN game_membership AS user1_gm ON user1_gm.uid = f.uid1
JOIN game_membership AS user2_gm ON user2_gm.uid = f.uid2
JOIN users AS u1 ON f.uid1 = u1.uid
JOIN users AS u2 ON f.uid2 = u2.uid
WHERE user1_gm.gid = <GID> AND user2_gm.gid = <GID>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9829 次 |
| 最近记录: |