Junior
Como funciona o Join em SQL?
sobes.tech IA
Resposta da IA
JOIN em SQL combina linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas. Existem vários tipos de JOIN:
INNER JOIN: Retorna linhas onde há correspondências de valores em ambas as tabelas.LEFT (OUTER) JOIN: Retorna todas as linhas da tabela da esquerda e as linhas correspondentes da direita. Se não houver correspondência na tabela da direita, valoresNULLsão retornados para as colunas da tabela da direita.RIGHT (OUTER) JOIN: Retorna todas as linhas da tabela da direita e as linhas correspondentes da esquerda. Se não houver correspondência na tabela da esquerda, valoresNULLsão retornados para as colunas da tabela da esquerda.FULL (OUTER) JOIN: Retorna todas as linhas de ambas as tabelas. Se não houver correspondência, valoresNULLsão retornados para as colunas correspondentes.CROSS JOIN: Retorna o produto cartesiano de duas tabelas (cada linha da primeira tabela combina-se com cada linha da segunda).
A sintaxe geralmente é assim:
SELECT coluna1, coluna2...
FROM tabela1
JOIN tabela2 ON tabela1.coluna_comum = tabela2.coluna_comum;
Exemplo de INNER JOIN:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
Considere as tabelas customers e orders:
customers
| customer_id | customer_name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
orders
| order_id | customer_id | amount |
|---|---|---|
| 101 | 1 | 100 |
| 102 | 2 | 150 |
| 103 | 1 | 200 |
| 104 | 4 | 50 |
O resultado do INNER JOIN será:
| order_id | customer_name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Alice |
O resultado do LEFT JOIN (orders LEFT JOIN customers):
| order_id | customer_id | amount | customer_name |
|---|---|---|---|
| 101 | 1 | 100 | Alice |
| 102 | 2 | 150 | Bob |
| 103 | 1 | 200 | Alice |
| 104 | 4 | 50 | NULL |