FC ConcursosFC Concursos

Questão FC295889

Considere a tabela Familia, apresentada abaixo, que possui as colunas Pai e Filho e uma instância exemplo que permite ilustrar as informações contidas nessa tabela. Pai Filho Andre

Linguagem SQL

CESGRANRIO · 2023

Considere a tabela Familia, apresentada abaixo, que possui as colunas Pai e Filho e uma instância exemplo que permite ilustrar as informações contidas nessa tabela.

 

Pai

Filho
Andre

Carlos

Andre

Claudio

Bruno

Diego

Bruno

Daniel

Carlos

Eriko

Carlos

Fabio

Daniel

Gustavo

Diego

Heleno

Eriko

Isidoro

Fabio

João

Uma consulta SQL feita para exibir os nomes dos netos de Carlos retorna os nomes Isidoro e João. A expressão, em linguagem SQL, dessa consulta é

  1. SELECT f2.filho

    FROM Familia f1 INNER JOIN Familia f2 ON f1.filho = f2.pai

    WHERE f1.pai = 'Carlos';

  2. SELECT f1.pai

    FROM Familia f1 INNER JOIN Familia f2 ON f1.pai = f2.filho

    WHERE f1.filho = 'Carlos';

  3. SELECT f1.pai

    FROM Familia f1 INNER JOIN Familia f2 ON f1.filho = f2.pai

    WHERE f1.pai = 'Carlos';

  4. SELECT

    f2.filho FROM Familia f1 INNER JOIN Familia f2 ON f1.pai = f2.pai

    WHERE f1.pai = 'Carlos';

  5. SELECT f2.filho

    FROM Familia f1 INNER JOIN Familia f2 ON f1.filho = f2.filho

    WHERE f1.pai = 'Carlos';

Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A consulta usa duas instâncias da mesma tabela com aliases f1 e f2 para relacionar gerações. O INNER JOIN com a cláusula ON f1.filho = f2.pai faz corresponder cada filho de uma linha (em f1) ao papel de pai em outra linha (em f2), ou seja, liga a segunda geração à terceira.

A condição WHERE f1.pai = 'Carlos' filtra apenas as linhas em que a pessoa da primeira geração é o pai Carlos, assim selecionando seus filhos (segunda geração) como ponto de partida.

Por fim, o SELECT f2.filho retorna o nome dos filhos das pessoas encontradas em f2, isto é, os netos de Carlos. Na instância apresentada, o resultado será Isidoro e João.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo