Digamos que eu tenha uma tabela SQL da seguinte maneira:
Id | Name | Email | Id_manager
---+------+--------------+------------
1 | Jon | [email protected] | 2
2 | Mike | [email protected] | 2
2 | Bar | [email protected] | 1
Então aqui Jon é o gerente do Bar e Mike é o gerente do John e dele mesmo. O mesmo Id_manager
ocorre com uma chave estrangeira que faz referência à mesma tabela.
Eu preciso retornar uma nova tabela contendo as seguintes colunas
Name, Email, Manager_Name
Mas não tenho ideia de como obter o nome do gerente usando uma operação SQL. Devo usar um join? Se sim, como posso fazer isso neste caso?
Isso é uma auto-junção, de fato:
select t.name, t.email, m.name as manager_name
from mytable t
inner join mytable m on m.id = t.id_manager
Se houver funcionários sem gerente, convém usar em left join
vez de inner join
para evitar filtrá-los.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras