Sobes.tech
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