Auto-JOIN
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 46 de 72.
Junções com a própria tabela são um tipo diferente de junção. Até agora, falamos sobre junções de várias tabelas, mas as junções com a própria tabela são feitas com a mesma tabela. Um exemplo clássico seria uma tabela de funcionários.
| employee_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
Todo funcionário tem um gerente, exceto o gerente mais alto, e todo gerente também é funcionário.
O problema: para cada funcionário, queremos saber o nome do gerente.
SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_idFazemos a junção entre a mesma tabela, mas uma vez a chamamos de e1 e, na segunda vez, de e2. A junção é feita entre os campos employee_id e manager_id.
O resultado:
| employee_id | employee_name | manager_name |
|---|---|---|
| 1 | Minke | Temur |
| 2 | Temur | Tatjana |
| 3 | Tatjana | Marinela |
Desafio
MédioTabelas e colunas disponíveis:
friends:id,name,friend_id
Encontre pares de amigos que são amigos mútuos (a amizade mútua existe quando o friend_id da pessoa A aponta para a pessoa B E o friend_id da pessoa B aponta para a pessoa A). Exiba os nomes dos dois amigos em uma única linha. Nomeie as colunas friend1 e friend2.
Observação: Inclua na cláusula WHERE o critério f1.id < f2.id (f1 e f2 são os aliases das duas cópias da tabela) para que não sejam incluídos pares duplicados
Experimente você mesmo
-- Junte a tabela a ela mesma para que uma linha possa mostrar duas pessoas diferentes
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- Mantenha apenas os pares que apontam um para o outro
WHERE ____ AND f1.id < f2.id;Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Mais palavras-chave
A palavra-chave INA palavra-chave BETWEENA palavra-chave LIKEA palavra-chave ASRecapitulação - Modelos de celulares2Condições
Noções básicas de condiçõesA palavra-chave ANDA palavra-chave ORA palavra-chave NOTCombinação de várias condiçõesParêntesesBooleanos3Formato de retorno específico
Valores nulosOrdenar resultados - Parte 1Ordenar resultados - Parte 2Recapitulação - Empresa de segurança cibernéticaLimitar o número de registrosRecapitulação - Fábrica de veículos6Desafios introdutórios
Revisão - Eleição parlamentarRevisão - Prisão criminal pela políciaRevisão - Recipiente de bebidas de barRevisão - Projetar novas colunasPratique por conta própria: Playground de SQL