Como usar CROSS JOIN no SQL?

O CROSS JOIN no SQL combina todos os registros de duas tabelas, gerando o produto cartesiano entre elas.

Como usar CROSS JOIN no SQL?

O CROSS JOIN no SQL é um tipo de junção que combina todos os registros de uma tabela com todos os registros de outra, gerando um produto cartesiano.

Estrutura básica do CROSS JOIN

Para combinar duas tabelas sem uma condição específica:

SELECT produtos.nome AS produto, lojas.nome AS loja 
FROM produtos 
CROSS JOIN lojas;

Se houver 5 produtos e 3 lojas, essa consulta retornará 15 combinações (5 x 3).

Simulando um CROSS JOIN com JOIN sem condição

Caso o banco de dados não suporte CROSS JOIN, podemos simulá-lo removendo a cláusula ON de um INNER JOIN:

SELECT produtos.nome, lojas.nome 
FROM produtos, lojas;

Isso também gera um produto cartesiano.

Quando usar CROSS JOIN?

  • Para gerar todas as combinações possíveis entre registros de duas tabelas.
  • Para criar tabelas auxiliares, como listas de dias da semana combinadas com horários de funcionamento.
  • Para simular combinações de variáveis, como diferentes opções de produtos e variações de cor ou tamanho.

Cuidados ao usar CROSS JOIN

  • Pode gerar grandes volumes de dados se ambas as tabelas forem muito grandes.
  • Não é recomendável em consultas de produção sem um critério de filtragem posterior.
  • Use com moderação para evitar lentidão no banco de dados.

O CROSS JOIN pode parecer um recurso pouco utilizado no SQL, mas é útil para casos em que precisamos gerar todas as combinações possíveis entre conjuntos de dados. Em sistemas de recomendação de produtos, por exemplo, ele pode ser utilizado para testar todas as combinações possíveis de itens e categorias. Também pode ser útil na criação de calendários dinâmicos, associando horários disponíveis a dias da semana automaticamente.

Algumas aplicações:

  • Gerar combinações de produtos e categorias
  • Criar tabelas de horários e turnos de trabalho
  • Simular variações de preços e promoções
  • Analisar combinações possíveis entre variáveis
  • Montar tabelas auxiliares para cálculos estatísticos

Dicas para quem está começando

  • Use CROSS JOIN apenas quando precisar de todas as combinações possíveis
  • Evite em tabelas grandes para não gerar resultados muito extensos
  • Para limitar combinações, adicione uma cláusula WHERE
  • Verifique o impacto da consulta antes de rodá-la em bases de produção
  • Se precisar de junções com correspondências, prefira INNER JOIN ou LEFT JOIN

Contribuições de Fernando Albuquerque

Compartilhe este tutorial: Como usar CROSS JOIN no SQL?

Compartilhe este tutorial

Continue aprendendo:

Como usar SELF JOIN no SQL?

O SELF JOIN permite unir uma tabela a ela mesma no SQL, útil para modelar hierarquias, relações de funcionários e estruturas organizacionais.

Tutorial anterior

Como buscar registros que existem em uma tabela, mas não em outra?

Podemos encontrar registros presentes em uma tabela, mas não em outra, utilizando LEFT JOIN, NOT EXISTS ou NOT IN.

Próximo tutorial