X           ...

Próximas questões
Com base no mesmo assunto
Q567882 Banco de Dados
                                                X                         Y        

                                             a    b                   c   d  

                                             1     2                  1   2

                                             3     3                  3   4

                                             4     5                  5   6

                                             5     7                  7   8

                                                                        9   1

select *

from x left join y on x.a=y.c

order by x.a

Considerando-se as tabelas e o comando SQL mostrados acima, é correto concluir que esse comando produz: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

A questão aborda o conceito de JOIN em SQL, que é fundamental para realizar consultas que combinem dados de duas ou mais tabelas. O tipo de JOIN utilizado aqui é o LEFT JOIN, que retorna todos os registros da tabela à esquerda (nesse caso, X) e os registros correspondentes da tabela à direita (Y). Quando não há correspondência, os resultados da tabela à direita têm valores NULL.

Para resolver essa questão, é necessário compreender como a condição de união especificada na cláusula ON afeta o resultado. A condição x.a = y.c define que as linhas das tabelas X e Y serão combinadas quando o valor na coluna a da tabela X for igual ao valor na coluna c da tabela Y.

Analizando as tabelas fornecidas e aplicando o comando SQL, temos o seguinte cenário:

  • Para x.a = 1: Encontramos correspondência em y.c = 1, então as linhas são combinadas (1, 2, 1, 2).
  • Para x.a = 3: Encontramos correspondência em y.c = 3, combinando as linhas (3, 3, 3, 4).
  • Para x.a = 4: Não encontramos correspondência em y.c, então o resultado para a tabela Y é NULL (4, 5, NULL, NULL).
  • Para x.a = 5: Encontramos correspondência em y.c = 5, combinando as linhas (5, 7, 5, 6).

O resultado final, após a aplicação do LEFT JOIN e ordenação pelo ORDER BY x.a, é a combinação das linhas das duas tabelas baseada na condição de união, incluindo uma linha com valores NULL para a tabela da direita quando não há correspondência, como acontece com o valor 4 da tabela X.

Portanto, a alternativa correta (D) é aquela que reflete corretamente o resultado do comando SQL fornecido, representando todos os registros da tabela X e os registros correspondentes ou valores NULL da tabela Y quando não há correspondência.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo