Mysql 询问玩家的朋友

Mysql 询问玩家的朋友,mysql,sql,Mysql,Sql,我有一张名为PlayerFriends的表格来模拟多对多的关系 PlayerFriends表包含PlayerFriendPlayerID和PlayerFriendFriendDid。它们是外键 玩家表中的玩家有一个玩家名称字段 我想为玩家“pid”选择所有朋友的所有玩家名称 我现在有一个查询,可以找到所有的朋友: SELECT * FROM PlayerFriends WHERE PlayerFriends.PlayerFriendPlayerID = pid; 但是我如何选择朋友的玩家名呢

我有一张名为PlayerFriends的表格来模拟多对多的关系

PlayerFriends表包含PlayerFriendPlayerID和PlayerFriendFriendDid。它们是外键

玩家表中的玩家有一个玩家名称字段

我想为玩家“pid”选择所有朋友的所有玩家名称

我现在有一个查询,可以找到所有的朋友:

SELECT * FROM PlayerFriends WHERE PlayerFriends.PlayerFriendPlayerID = pid;
但是我如何选择朋友的玩家名呢

谢谢

试试:

SELECT C.PlayerName 
FROM Players AS A 
    JOIN PlayerFriends AS B ON B.PlayerId=A.id
    JOIN Players AS C ON B.PlayerFriendPlayerID=C.id
WHERE A.id=pid

您可以通过一个简单的连接来实现这一点:


仍然错误,没有必要再次加入玩家表,您应该加入具有好友id的玩家
Select  P.PlayerName
From    PlayerFriends   F
Join    Players         P On F.PlayerFriendFriendId = P.PlayerId
Where   F.PlayerFriendPlayerId = pid