我想编写一个查询,返回下表中的姓名和他们最好的朋友的姓名:
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 |
那么我错过了什么?任何帮助将不胜感激
你很接近了!您需要加入
BestFriendID
上的表格,然后选择朋友的名字,您忘记了 - 试试这个:
SELECT A.Name, B.Name AS Bestfriend
FROM FRIEND A
LEFT JOIN FRIEND B ON A.BestFriendID = B.FriendID;