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