Junior — Middle
Qual é a diferença entre os operadores CROSS JOIN e INNER JOIN ao combinar tabelas em SQL?
sobes.tech IA
Resposta da IA
CROSS JOIN e INNER JOIN são tipos diferentes de junções de tabelas em SQL:
-
CROSS JOIN (produto cartesiano): devolve todas as combinações possíveis de linhas de ambas as tabelas. Se na primeira tabela há N linhas e na segunda M, o resultado terá N×M linhas. Raramente usado, quando se quer obter todos os pares.
-
INNER JOIN: devolve apenas as linhas que têm correspondências de acordo com a condição de junção (normalmente por chave). Se as linhas não coincidirem, não aparecem no resultado.
Exemplo:
-- Tabela A
id | nome
---|-----
1 | Alice
2 | Bob
-- Tabela B
id | cidade
---|--------
1 | NY
3 | LA
-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;
-- Resultado: 2 linhas de A × 2 linhas de B = 4 linhas
-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.id;
-- Resultado: apenas as linhas com id=1, pois são as únicas que coincidem