sql查询查找依赖于另一个id的id名称

时间:2015-07-06 16:37:49

标签: 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     | fav      | 
+----+----------+----------+
|  1 | Mark     | Khilan   |
|  2 | Khilan   | Mark     | 
|  3 | kaushik  | Muffy    | 
|  4 | Chaitali | Mark     | 
|  5 | Hardik   | kaushik  | 
|  6 | Komal    | Chaitali |
|  7 | Muffy    | Muffy    |  
+----+----------+----------+ 

2 个答案:

答案 0 :(得分:2)

您可以使用内部联接:

SELECT m.id, m.name, tmp.name AS favorite
FROM myTable m
JOIN myTable tmp ON tmp.id = m.fav_id;

这将使两个表与自身对齐,条件是一个表的id与另一个表的最爱id匹配,并且您可以调整select子句以获取收藏夹的名称而不是其ID。

以下是SQL Fiddle示例。

答案 1 :(得分:0)

您可以使用自联接将其设为:

display:none;