Consulta SQL básica - joins
Consulta SQL Básica - Junções
Consulta SQL Básica - Junções
Relação entre tabelas
– Modo ANSI
– Modo Não-ANSI
– Tipos:
•
•
•
•
•
Produto Cartesiano
Equijoin
Inner Join
Outer Join
Self Join
Consulta SQL Básica - Junções
Relacionamento entre tabelas – Cross Join
EMPREGADOS
EMP_ID
NOME
DEPARTAMENTOS
DEP_ID
120
João
10
230
Maria
10
154
Daniel
DEPT_ID
X
DEPARTAMENTO
10
Entrega
20
RH
CROSS JOIN
Resultado
EMP_ID
NOME
DEP_ID
DEPT_ID
DEPARTAMENTO
120
João
10
10
Entrega
230
Maria
10
10
Entrega
154
Daniel
10
Entrega
120
João
10
20
RH
230
Maria
10
20
RH
153
Daniel
20
RH
Consulta SQL Básica – Cross Join
• Sintaxe:
SELECT [clausula_select]
FROM tabela1 [apelido1] ,tabela2 [apelido2] [,tabela3 [apelido3] ...]
• Exemplo:
SELECT * FROM empregados CROSS JOIN departamentos;
SELECT * FROM empregados,departamentos;
Consulta SQL Básica - Junções
Relacionamento entre tabelas – Inner Join
EMPREGADOS
EMP_ID
NOME
DEPARTAMENTOS
DEP_ID
120
João
10
230
Maria
10
154
Daniel
DEPT_ID
X
DEPARTAMENTO
10
Entrega
20
RH
JOIN
Resultado
EMP_ID
NOME
DEP_ID
DEPT_ID
DEPARTAMENTO
120
João
10
10
Entrega
230
Maria
10
10
Entrega
Consulta SQL Básica – Inner Join
• Sintaxe – Padrão ANSI:
SELECT [clausula_select]
FROM tabela1 [apelido1]
INNER JOIN tabela2 [apelido2]
ON [tabela1.|apelido1.]coluna1 = [tabela2.|apelido2.]coluna2
[JOIN tabela3 [apelido3]...];
• Exemplo (considerando slide anterior):
SELECT *
FROM empregados INNER JOIN departamentos ON dep_id = dept_id
Consulta SQL Básica – Inner Join
• Sintaxe – Padrão NÃO ANSI:
SELECT [clausula_select]
FROM tabela1 [apelido1] ,tabela2 [apelido2] [,tabela3 [apelido3] ...]
WHERE [tabela1.|apelido1.]coluna1 = [tabela2.|apelido2.]coluna2