我想从Players表中选择* FriendID = PlayerID。问题是1个玩家可以有很多朋友,所以我可以在Friends表中有多行,其中PlayerID相同但FriendID不同。 FriendID也是Players表中PlayerID字段的FK。
我可以通过2个单独的查询来完成此操作。首先,我从朋友那里选择FriendID,其中PlayerID = ID,然后我可以循环浏览所有FriendID的返回选择*来自玩家,其中PlayerID = FriendID。看起来这应该更容易,并且是维持FK关系的一部分?我是否必须通过2个单独的查询来执行此操作,或者我错过了什么?
以下是朋友中的表格FriendID是Players中玩家ID上的FK
[Players]
PlayerID
Name
Email
和
[Friends]
PlayerID
FriendID
更新
以下是一些数据和预期结果。
Friends
PlayerID = 6, FriendID = 9
PlayerID = 6, FriendID = 11
Players
PlayerID = 9, Email = bl@bl.c, Name = Pedro
PlayerID = 11, Email = ca@ca.ca, Name = Marcus
结果将通过查询Friends表获取上面列出的所有数据。基本上从玩家ID = 6的朋友中选择*然后选择玩家ID = 9和11的玩家*希望这更有意义......
答案 0 :(得分:0)
这是你要找的东西吗?
DECLARE @id int = 777
SELECT Players.*
FROM Players
JOIN Friends
ON Friends.FriendID = Players.PlayerID
WHERE Friends.PlayerID = @id
这应该获取有关与Friends表中的PlayerID相关联的所有FriendID的所有玩家信息。