MySQL:从一个表中选择两次

时间:2015-06-05 16:47:11

标签: mysql

对这个含糊不清的标题表示歉意......我甚至很难总结我想要做的事情。我怀疑它是一个非常基本的SQL函数,但我缺乏技术词汇。

我有一个包含三个字段的表:person_id(number),person_name(string),best_friend_id(number)。

一些样本记录可能是:(1," John",2)和(2," Mary",3)。这些样本记录表明Person 1是John,其最好的朋友是Person 2;并且,第2人是玛丽,其最好的朋友是身份3的其他人。

是否可以为MySQL数据库编写一个SELECT语句,该语句将显示该人的姓名以及表中每条记录的最佳朋友的姓名?例如,(1," John",2," Mary"); (2," Mary",3," Fred");等等。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将表格加入自身,

SELECT tbl1.person_id, 
       tbl1.person_name, 
       tbl1.best_friend_id, 
       tbl2.person_name 
FROM table_name tbl1
LEFT JOIN table_name tbl2 ON tbl1.person_id = tbl2.best_friend_id