Questões Informática Banco de Dados

Para gerar um gráfico de dispersão, um programador precisava consultar duas tabelas,...

Responda: Para gerar um gráfico de dispersão, um programador precisava consultar duas tabelas, T1 e T2. Ele decidiu, então, usar um LEFT JOIN, como em SELECT * FROM T1 LEFT JOIN T2 USING (CHAVE)...


Q859928 | Informática, Banco de Dados, Agente de Tecnologia, Banco do Brasil, CESGRANRIO, 2021

Para gerar um gráfico de dispersão, um programador precisava consultar duas tabelas, T1 e T2. Ele decidiu, então, usar um LEFT JOIN, como em

SELECT * FROM T1 LEFT JOIN T2 USING (CHAVE);

Essa consulta resultou em 214 linhas.

Por motivos de segurança, ele fez outra consulta semelhante, apenas trocando o LEFT JOIN por um JOIN, e essa segunda consulta resultou em 190 linhas.

O que pode explicar corretamente a quantidade diferente de linhas nas consultas realizadas?

Marcos de Castro
Por Marcos de Castro em 03/01/2025 20:15:17🎓 Equipe Gabarite
Gabarito: c)

Quando utilizamos um LEFT JOIN, todas as linhas da tabela à esquerda (T1, no caso) são mantidas no resultado final, mesmo que não haja correspondência na tabela à direita (T2). Isso significa que, se houver linhas em T1 que não possuem correspondência em T2, elas ainda serão exibidas no resultado, porém com valores nulos para as colunas de T2.

Por outro lado, ao utilizar um INNER JOIN (ou simplesmente JOIN), apenas as linhas que possuem correspondência em ambas as tabelas são mantidas no resultado final. Portanto, se houver linhas em T1 que não possuem correspondência em T2, essas linhas serão excluídas do resultado.

Assim, a diferença de quantidade de linhas entre as consultas com LEFT JOIN e JOIN pode ser explicada pelo fato de que T1 possui linhas cujo valor da CHAVE não está presente na tabela T2, o que faz com que essas linhas sejam mantidas no resultado do LEFT JOIN, mas sejam excluídas no resultado do JOIN.
Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência de navegação. Política de Privacidade.