MySQL JOIN 根据同一列中的另一列获取列的值 table

MySQL JOIN get the value of a column based on another column in the same table

Table 塔根特


|id_agente | nombre | id_grupo |
|------------------------------|
| 3        |  mark  |    4     |

Table tagent_secondary_group

|id     | id_agente | id_group |
|------------------------------|
|  2    |    3      |    8     |

Table tgrupo

|id_grupo |   nombre   | parent|
|------------------------------|
|  8      | servers    |  10   |
|  10     | datacenter |  0    |

“tgrupo”table 中的“父”列引用相同 table 的“id_grupo”, 所以服务器的父级是数据中心。

我需要根据父值获取“nombre”值。

我该怎么做?可以在同一个查询上完成吗?

SELECT  ta.nombre as agente ,tg.nombre as grupo , tg.parent 
FROM tagente ta
JOIN tagent_secondary_group tsg ON ta.id_agente  = tsg.id_agent 
JOIN tgrupo tg ON tsg.id_group = tg.id_grupo

是的,您只需使用两个不同的别名两次包含 table。我这里写的是WHERE,但是可以重做JOINs.

SELECT  ta.nombre as agente , tg2.nombre as grupo , tg1.parent 
FROM tagente ta, tagent_secondary_group tsg, tgrupo tg1, tgrupo tg2
WHERE ta.id_agente = tsg.id_agent
  AND tsg.id_group = tg1.id_grupo
  AND tg1.parent = tg2.id_grupo;