✅ Explicação

INNER JOIN serve para combinar registros de duas tabelas quando existe correspondência entre os valores das colunas relacionadas. Só entra no resultado a linha que tem par nas duas tabelas. Se não bater de um lado com o outro, fica de fora.

📌 Usos mais comuns

  • Juntar tabelas por um campo comum (ex: código do produto, ID do cliente).

  • Cruzar dados que fazem sentido apenas quando combinados.

  • Montar relatórios completos a partir de tabelas separadas.

🧾 Sintaxe

Forma implícita (estilo antigo, ainda funciona):
SELECT campos
FROM TABELA1, TABELA2
WHERE TABELA1.CAMPO = TABELA2.CAMPO;
Forma explícita (recomendada):
SELECT campos
FROM TABELA1
INNER JOIN TABELA2
  ON TABELA1.CAMPO = TABELA2.CAMPO;

🧪 Exemplo prático

🧱 Tabela: PARTS

PART PROD# SUPPLIER
WIRE 10 ACWF
OIL 160 WESTERN_CHEM
MAGNETS 10 BATEMAN
PLASTIC 30 PLASTIK_CORP
BLADES 205 ACE_STEEL

🧱 Tabela: PRODUCTS

PROD# PRODUCT PRICE
505 SCREWDRIVER 3.70
30 RELAY 7.55
205 SAW 18.90
10 GENERATOR 45.75

Consulta:

SELECT PART, SUPPLIER, PARTS.PROD#, PRODUCT
FROM PARTS
INNER JOIN PRODUCTS
  ON PARTS.PROD# = PRODUCTS.PROD#;

Resultado:

PART SUPPLIER PROD# PRODUCT
WIRE ACWF 10 GENERATOR
MAGNETS BATEMAN 10 GENERATOR
BLADES ACE_STEEL 205 SAW
PLASTIC PLASTIK_CORP 30 RELAY

Obs.: OIL e SCREWDRIVER não aparecem porque não têm correspondência.

⚠️ Regras importantes

  • Sempre especifique a condição de junção no ON, senão vira produto cartesiano (todas combinações possíveis).

  • Use alias (P, PR, etc.) pra clarear quando há muitos campos com o mesmo nome.

  • Pode adicionar mais condições com AND para refinar o resultado.

💡 Dicas

  • A forma explícita com INNER JOIN ... ON ... é mais legível e mais segura que a antiga com vírgula.

  • Use NOT LIKE, >, IN etc., na cláusula ON ou WHERE para filtrar durante ou após a junção.

📚 Exemplo com filtro:

SELECT PART, SUPPLIER, PARTS.PROD#, PRODUCT
FROM PARTS
INNER JOIN PRODUCTS
  ON PARTS.PROD# = PRODUCTS.PROD#
 AND SUPPLIER NOT LIKE 'A%';

Resultado:

PART SUPPLIER PROD# PRODUCT
MAGNETS BATEMAN 10 GENERATOR
PLASTIC PLASTIK_CORP 30 RELAY

 

✅ Conclusão

O INNER JOIN é o tipo mais comum de junção em SQL. Ideal pra quando você quer registros que batem certinho dos dois lados. Se não bateu, nem aparece. Use bem e evite tabelas soltas!