Mysql 查找依赖于其他id的id名称的sql查询

Mysql 查找依赖于其他id的id名称的sql查询,mysql,Mysql,我有下表: | ID | NAME | f_id | +----+----------+------+ | 1 | Mark | 2 | | 2 | Khilan | 1 | | 3 | kaushik | 7 | | 4 | Chaitali | 1 | | 5 | Hardik | 3 | | 6 | Komal | 4 | | 7 | Muffy | 7 | +----+------

我有下表:

| ID | NAME     | f_id | 
+----+----------+------+
|  1 | Mark     |  2   |
|  2 | Khilan   |  1   | 
|  3 | kaushik  |  7   | 
|  4 | Chaitali |  1   | 
|  5 | Hardik   |  3   | 
|  6 | Komal    |  4   |
|  7 | Muffy    | 7    |  
+----+----------+------+ 
我必须写一个查询,从人员列表中查找最喜欢的人员, 但事情是一个人可以把自己最喜欢的像在桌上的马菲一样,把自己最喜欢的人当作马菲而已。结果如下所示:

| ID | NAME     | fav      | 
+----+----------+----------+
|  1 | Mark     | Khilan   |
|  2 | Khilan   | Mark     | 
|  3 | kaushik  | Muffy    | 
|  4 | Chaitali | Mark     | 
|  5 | Hardik   | kaushik  | 
|  6 | Komal    | Chaitali |
|  7 | Muffy    | Muffy    |  
+----+----------+----------+ 

您可以为此使用内部联接:

SELECT m.id, m.name, tmp.name AS favorite
FROM myTable m
JOIN myTable tmp ON tmp.id = m.fav_id;
这将使两个表与其自身对齐,条件是一个表的id与另一个表的favorite id匹配,并且您可以调整select子句以获取favorite的名称而不是其id


下面是一个示例。

您可以使用自连接将其作为:

Select a.id, a.name, b.name as fav  from table a inner join table b on a.f_id = b.id