Recap - Self Join
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 47 de 72.
Desafio
DifícilTabelas e colunas disponíveis:
<strong>friends</strong>:<strong>id</strong>,<strong>name</strong>,<strong>friend_id</strong>
Para cada pessoa na tabela friends, encontre todas as conexões de amigo de um amigo que ela possui. Uma conexão de amigo de um amigo ocorre quando a pessoa A é amiga da pessoa B, que por sua vez é amiga da pessoa C. Liste essas conexões em três colunas:
friend1: a pessoa inicialfriend2: o amigo direto delafriend3: o amigo do amigo dela
Regras:
- Não inclua casos em que
friend3é a mesma pessoa quefriend1 - Ordene os resultados pelo nome de
friend1em ordem decrescente
Exemplo: Se Alice é amiga de Bob, e Bob é amigo de Carol, então Alice-Bob-Carol seria uma conexão válida de amigo de um amigo.
Experimente você mesmo
-- Junte a tabela a si mesma duas vezes para que uma linha contenha uma cadeia de três pessoas
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- Descarte as cadeias que voltam em loop para a pessoa de onde começaram
WHERE ____
ORDER BY ____ DESC;Todas as lições de Fundamentos
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columnsPratique por conta própria: Playground de SQL