SQL查询在表中查找好友

raw*_*esh 1 sql union

我有两张桌子,UsersFriends.表格如下:

USERS
|  ID   |  Name   | 
|  1    |  Sam    | 
|  2    |  Harry  |         
|  3    |  Vivi   |
|  4    | sabrina |

FRIENDS
| UId   | FriendID| 
|  1    |    2    |    
|  2    |    3    |  
|  4    |    1    | 
|  5    |    4    | 
|  1    |    3    |  
Run Code Online (Sandbox Code Playgroud)

我需要为Sam找到所有朋友的名字.我尝试在SQL查询中使用Union执行相同操作,但我无法获得所需的输出.我可以获得所需的输出吗?

Sha*_*jay 6

declare
@answer nvarchar(max)='{'
select @answer=@answer+u1.Name+',' from USERS u
inner join FRIENDS f on f.UId=u.ID
inner join USERS u1 on u1.ID=f.FriendID
where u.ID=<what ever you want> //1 or 2 or 3 or 4

set @answer=SUBSTRING(@answer,0,len(@answer)-1)+'}'
select @answer
Run Code Online (Sandbox Code Playgroud)