Professional Documents
Culture Documents
Joins
At agora estamos trabalhando com a recuperao de dados sobre
uma nica tabela, mas o conceito de banco de dados rene, evidentemente, vrias tabelas diferentes.
temos, muitas vezes, a necessidade de acessar simultaneamente vrias tabelas relacionadas entre si. Algumas dessas consultas necessitam realizar uma juno (JOIN) entre tabelas.
Joins
As JOINS so criadas atravs da chave primaria de uma tabela com
pedidos.
TBCliente CodCliente: INTEGER NomeCliente: VARCHAR(60) Endereco: VARCHAR(50) Cidade: VARCHAR(30) Estado: VARCHAR(2) CPF: VARCHAR(15) DataNascimento: DATE TBPedido CodPedido: INTEGER PrazoEntrega: INTEGER CodVendedor: INTEGER CodCliente: INTEGER
Joins
Select A.NomeCliente, B.codPedido From TBCliente A, TBPedido B Where A.CodCliente = B.CodCliente
Joins
Problema: Quantos clientes fizeram pedido com a vendedora
Rosana Reis'
TBCliente CodCliente: INTEGER NomeCliente: VARCHAR(60) Endereco: VARCHAR(50) Cidade: VARCHAR(30) Estado: VARCHAR(2) CPF: VARCHAR(15) DataNascimento: DATE TBPedido CodPedido: INTEGER PrazoEntrega: INTEGER CodVendedor: INTEGER CodCliente: INTEGER
Joins
Select Count(A.CodCliente) From TBPedido A, TBCliente B, TBVendedor C Where A.CodCliente = B.CodCliente and A.CodVendedor = C.CodVendedor and C.NomeVendedor = 'Rosana Reis'
Modelos de Joins
O trabalho com JOINS ponto primordial para manipulaes
de comandos SQL.
As Joins se dividem em dois grupos: OUTER JOIN INNER JOIN
OUTER JOIN
Liga as linhas da tabela baseado na condio de ligao,
porm retorna as linhas que no combinam entre si. Assim, mesmo as linhas que no se encontrou referncia no cruzamento das tabelas aparecero no resultado.
Temos dois tipos de pesquisas com OUTER JOIN: LEFT OUTER JOIN RIGTH OUTER JOIN
Tabela da Esquerda
Tabela da Direita
Como?????
VIEWS
Tabela da Direita
TBVendedor
Tabela da Esquerda
A vendedora Regina Reis no efetuou nenhuma venda. Porm, como o nosso select trs todas as referencias da tabela da esquerda ela aparece com o valor 0 no campo contador.
Tabela da Esquerda
Tabela da Direita
INNER JOIN
Liga as linhas das tabelas baseado na condio da
venda.
TBVendedor CodVendedor: INTEGER
Tabela da Esquerda
Somente Iguais
INNER JOIN
select Distinct A.NomeVendedor from tbvendedor A INNER JOIN tbpedido B on A.CodVendedor = B.CodVendedor
INNER JOIN
Importante: Joins com INNER JOIN so as mesmas Joins que
fizemos no incio.
select Distinct A.NomeVendedor from tbvendedor A INNER JOIN tbpedido B on A.CodVendedor = B.CodVendedor select Distinct A.NomeVendedor from tbvendedor A, tbpedido B where A.CodVendedor = B.CodVendedor
Mesma coisa