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
,但是可以重做JOIN
s.
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;
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
,但是可以重做JOIN
s.
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;