给定同一数据集中的 ID 号,如何返回名称?

问题描述 投票:0回答:1

我想编写一个查询,返回下表中的姓名和他们最好的朋友的姓名:

FRIEND 表示例:

好友ID 姓名 最好的朋友ID
1 艾比
2 鲍勃 3
3 卡尔 2

预期输出:

姓名 最好的朋友
艾比
鲍勃 卡尔
卡尔 鲍勃

到目前为止我的代码:

SELECT A.Name, B.BestFriendID AS Bestfriend
FROM FRIEND A, FRIEND B
WHERE A.FriendID = B.BestFriendID;

问题是输出返回原来好友的ID:

姓名 最好的朋友
艾比 1
鲍勃 2
卡尔 3

那么我错过了什么?任何帮助将不胜感激

sql self-join
1个回答
0
投票

你很接近了!您需要加入

BestFriendID
上的表格,然后选择朋友的名字,您忘记了 - 试试这个:

SELECT A.Name, B.Name AS Bestfriend
FROM FRIEND A
LEFT JOIN FRIEND B ON A.BestFriendID = B.FriendID;
© www.soinside.com 2019 - 2024. All rights reserved.