ulgue os seguintes itens, referentes a frameworks para camad...
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
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
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.
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