Você está na página 1de 24

Banco de Dados I

SELECT envolvendo mais de uma tabela

Pablo Dalbem

Introduo
Nossas tabelas esto com os seguintes registros:

Selecionar registros
Quando recuperamos os clientes cadastrados, o resultado :

Repare que no campo cidade, vem o cdigo da cidade e no a descrio dela.

Selecionar registros
Como fazer para apresentar os resultados da seguinte forma?

Veremos como retornar registros de mais de uma tabela: 1. Produto cartesiano entre as tabelas 2. Inner Join 3. Left Join 4. Right Join

Produto cartesiano

Selecionar registros
1. Produto cartesiano

E se eu tivesse que buscar registros em 3 tabelas????

Selecionar registros
Para reduzir o tamanho da instruo SQL, pode-se utilizar apelidos para as tabelas. O resultado ser o mesmo.

INNER JOIN

INNER JOIN
2. Inner Join

E se eu tivesse que buscar registros em 3 tabelas????

INNER JOIN
Detalhando: Campos selecionados Primeira tabela

Segunda tabela Forma pela qual as 2 tabelas se relacionam

INNER JOIN
Para reduzir o tamanho da instruo SQL, pode-se utilizar apelidos para as tabelas. O resultado ser o mesmo.

INNER JOIN
Acrescentando a uf:

INNER JOIN
Retornando clientes de um determinado estado:

INNER JOIN
Retornando clientes de uma determinada cidade:

INNER JOIN
Selecionar um cliente especfico, passando o nome como parmetro para a clusula where:

LEFT JOIN

LEFT JOIN
Relembrando como esto nossas tabelas:

LEFT JOIN
Suponha que estejamos selecionando registros de 2 tabelas. O LEFT JOIN permite selecionar todos os registros da primeira tabela, mesmo que eles no tenham nenhum registro correspondente na segunda tabela.

LEFT JOIN
Suponha que estejamos selecionando registros de 2 tabelas. O LEFT JOIN permite selecionar todos os registros da primeira tabela, mesmo que eles no tenham nenhum registro correspondente na segunda tabela.

RIGHT JOIN

RIGHT JOIN
Novamente estamos selecionando registros de 2 tabelas. O RIGHT JOIN permite selecionar todos os registros da segunda tabela, mesmo que eles no tenham nenhum registro correspondente na primeira tabela.

RIGHT JOIN
Novamente estamos selecionando registros de 2 tabelas. O RIGHT JOIN permite selecionar todos os registros da segunda tabela, mesmo que eles no tenham nenhum registro correspondente na primeira tabela.

Representao Grfica
Tabela 1 Tabela 2 Produto cartesiano e INNER JOIN: Retorna o que comum s duas tabelas

Tabela 1

Tabela 2 LEFT JOIN: Retorna o que comum s duas tabelas e considera tudo da primeira tabela, mesmo que no exista nenhum registro correspondente na segunda tabela.

Tabela 1

Tabela 2 RIGHT JOIN: Retorna o que comum s duas tabelas e considera tudo da segunda tabela, mesmo que no exista nenhum registro correspondente na primeira tabela.

Exerccio
Departamentos CodDep 1 2 3 4 TI RH Vendas Compras Funcionarios CodFunc 1 2 3 4 Maria Joo Celso Aline Nome 1 NULL 3 4 Depto Descricao

Você também pode gostar