An Lise Banco Dados 06 JOINS
JOINS
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Perceba que temos 6 registros na tabela Marcas e 14 registros na tabela Carros.
Agora com os dados inseridos, vamos aos exemplos de cross join, inner join, left join, right join e full outer join.
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Cross Join
A junção cross join irá juntar todos os registros da tabela marcas com todos os registros da tabela carros, formando um produto cartesiano.
Veja o exemplo abaixo: select m.nome, c.modelo from marcas as m cross join carros as c
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Cross Join
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Inner Join
A junção inner join irá juntar os registros da tabela marca que tiver um correspondente na tabela carros. Essa correspondência é feita pelos campos marca que está presente nas duas tabelas.
Embora não esteja explícito, mas o campo marca seria a chave primária (na tabela marcas) e chave estrangeira (na tabela carros).
Veja o exemplo: select m.nome, c.modelo from marcas as m inner join carros as c on c.marca = m.marca
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Inner Join
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Inner Join
Apenas 10 registros satisfazem o inner join.
Podemos dizer que 10 carros estão associados a alguma marca, enquanto que os demais não.
Prof. Rodrigo M. Silva
silvars@gmail.com
Administração de Bancos de Dados
Left Join
O left join irá fazer a junção das duas tabelas “dando preferência” aos registros da tabela marcas. Assim, todos os registros da tabela marcas serão mostrados, independente de haver correspondência na tabela carros.
Quando não houver correspondência na tabela carros, será
mostrado