ulgue os seguintes itens, referentes a frameworks para camad...

Próximas questões
Com base no mesmo assunto
Q351960 Banco de Dados
ulgue os seguintes itens, referentes a frameworks para camada de persistência e SQL.

A partir das tabelas abaixo identificadas, a execução das duas consultas que a elas se seguem apresentará o mesmo resultado.

aluno (id integer, nome varchar, raca integer);
corraca (id integer, descricao varchar);
select a.nome, b.decricao from aluno a left
join corraca b
on a.raca = b.id
select a.nome, b.decricao
from aluno a cross join corraca b
on a.raca = b.id
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - errado

O tema da questão envolve o entendimento das operações de JOIN em SQL, especificamente a diferença entre LEFT JOIN e CROSS JOIN. Ao trabalhar com bases de dados, a habilidade de combinar registros de duas ou mais tabelas é fundamental, e cada tipo de JOIN tem um propósito específico e um resultado diferente.

LEFT JOIN (também conhecido como LEFT OUTER JOIN) retorna todos os registros da tabela à esquerda (tabela 'aluno' no nosso caso) e os registros correspondentes da tabela à direita (tabela 'corraca'). Se não houver correspondência, o resultado é NULL do lado direito.

Em contraste, CROSS JOIN produz um produto cartesiano entre as tabelas, o que significa que ele combina cada linha da primeira tabela com todas as linhas da segunda tabela. Quando se utiliza o CROSS JOIN com uma cláusula ON, ele age como um INNER JOIN, retornando apenas as linhas que satisfazem a condição especificada na cláusula ON.

Nesse contexto, as duas consultas SQL apresentadas produzirão resultados diferentes. A primeira query, usando LEFT JOIN, incluirá todos os alunos, com ou sem correspondência na tabela 'corraca'. Já a segunda consulta, embora incorretamente descrita como um CROSS JOIN, está mais próxima de um INNER JOIN devido à cláusula ON, retornando apenas aqueles alunos que têm uma raça correspondente na tabela 'corraca'.

Portanto, a afirmação de que ambas as consultas resultam no mesmo conjunto de dados é incorreta, pois as operações de JOIN utilizadas têm comportamentos distintos e criam conjuntos de resultados diferentes. Em resumo, a alternativa E é correta porque as duas consultas resultarão em dados diferentes devido ao uso de tipos de JOIN com comportamentos distintos.

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

A diferença se dará quando tiver um valor no aluno.raca não identificado no corraca.id.

Left Join trará todos os alunos.
Cross Join trará todos os alunos que tem uma cor.

O CROSS JOIN terá todos os registros da tabela aluno se relacionando com a tabela cor raça. Será um produto cartesiano da tabela aluno com a cor raça.

CROSS JOIN – Todos os dados da tabela à esquerda de JOIN são cruzados com os dados da tabela à direita de JOIN por meio do CROSS JOIN, também conhecido como produto cartesiano. É possível cruzarmos informações de duas ou mais tabelas.

FULL JOIN – Todas as linhas de dados da tabela à esquerda de JOIN e da tabela à direita serão retornadas pela cláusula FULL JOIN ou FULL OUTER JOIN. Caso uma linha de dados não esteja associada a qualquer linha da outra tabela, os valores das colunas a lista de seleção serão nulos. Caso contrário, os valores obtidos serão baseados nas tabelas usadas como referência.

fonte:http://www.devmedia.com.br/clausulas-full-join-cross-join-update-e-delete-associacao-de-tabelas-sql-server-2008-parte-3/18931

quer entender?

 

 

veja este link: http://stackoverflow.com/questions/17759687/cross-join-vs-inner-join-in-sql-server-2008

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo