Analise a consulta SQL a seguir.Linha 1: SELECT a.nome, b.so...
Analise a consulta SQL a seguir.
Linha 1: SELECT a.nome, b.sobrenome, c.rua, d.telefone
Linha 2: FROM pessoa a, pessoa b, endereco c, telefone d
Linha 3: ?
Linha 4: ORDER BY 1;
Assinale a alternativa que indica o número mínimo de JOINs que
deve ser especificado na linha 3 da consulta SQL acima, de modo
que os campos nos registros de saída pertençam todos à mesma
pessoa.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a C - Três.
Para resolver essa questão, é necessário entender a operação de JOIN em SQL, que é usada para combinar linhas de duas ou mais tabelas, com base em uma coluna relacionada entre elas. Nesse caso, queremos garantir que as informações selecionadas (nome, sobrenome, rua e telefone) pertençam à mesma pessoa.
Considerando a consulta SQL fornecida:
- O trecho "
SELECT a.nome, b.sobrenome, c.rua, d.telefone
" sugere que cada letra (a, b, c, d) representa um alias para uma tabela diferente (ou diferentes instâncias da mesma tabela). - O trecho "
FROM pessoa a, pessoa b, endereco c, telefone d
" indica que estamos lidando com quatro conjuntos de dados. Assume-se que 'pessoa' e 'endereco' estejam relacionados, assim como 'pessoa' e 'telefone'.
Para assegurar que todas as informações se refiram à mesma pessoa, precisamos de ligações (JOINs) que conectem:
- A tabela de pessoas com a tabela de endereços;
- A tabela de pessoas com a tabela de telefones;
- As duas instâncias da tabela de pessoas para garantir que o nome e o sobrenome se refiram à mesma entrada.
Portanto, são necessários três JOINs:
- Um para ligar
pessoa
aendereco
; - Outro para ligar
pessoa
atelefone
; - E um terceiro para garantir que
nome
esobrenome
venham da mesma pessoa, isto é, ligando as instânciasa
eb
da tabela pessoa.
Esses JOINs asseguram que os registros de saída serão consistentes e pertencerão à mesma pessoa, uma vez que haverá uma condição de correspondência que conecta as linhas pertinentes. O uso incorreto ou insuficiente de JOINs levaria a resultados errôneos, com combinações de registros que não correspondem à mesma pessoa.
Assim, a alternativa C - Três é a correta, pois indica o número mínimo de JOINs necessários para cumprir a condição especificada na questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
[pessoa A] JOIN [pessoa B] JOIN [endereco C] JOIN [telefone d] >> 3 JOIN's no total
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo