SQL查询问题:如何从FRIEND表获取用户及对应好友姓名
解决方法
你的问题出在三个核心点上:
- 错误选取了
B.BestFriendID(这是ID值),而非好友的姓名字段B.Name - 表关联条件写反了,应该用当前用户的
BestFriendID去匹配好友的FriendID - 隐式内连接会过滤掉没有好友的用户(比如Abby),需要用左连接保留所有用户记录
修正后的SQL语句:
SELECT A.Name, B.Name AS Bestfriend FROM FRIEND A LEFT JOIN FRIEND B ON A.BestFriendID = B.FriendID;
说明:
LEFT JOIN确保即使用户没有填写BestFriendID(比如Abby),也会被保留在结果集中,对应的Bestfriend字段显示为空值- 关联条件
A.BestFriendID = B.FriendID:用当前用户A的好友ID,匹配表B中对应的用户记录,从而获取好友姓名 - 选取
B.Name作为Bestfriend字段,得到的就是好友姓名而非ID
执行这条查询后,就能得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者ConsistentToast
相关产品推荐
相关产品推荐

