Join Ou Junções SQL | Inner, Left, Right E Full Outer Join
Ensaios: Join Ou Junções SQL | Inner, Left, Right E Full Outer Join. Pesquise 861.000+ trabalhos acadêmicosPor: mgribeiro • 24/4/2014 • 608 Palavras (3 Páginas) • 325 Visualizações
Join ou Junções SQL | Inner, left, right e full outer join
Tutorial passo-a-passo de join em SQL. Aprenda as diferenças entre as junções cross, inner, left, right e full outer join.
Home » SQL e Banco de Dados
Join ou junção em SQL é um assunto que provoca muitas dúvidas, afinal, sempre que juntamos duas ou mais tabelas, poderemos ter resultados bem diferentes dependendo do tipo de junção que estamos fazendo. Escrevi um post sobre o left join e inner join e pelo visto o pessoal gostou da abordagem, agora, quero ir além e vou incluir além do left e inner, o right join, cross join e o full outer join.
Primeiro vou criar duas tabelas simples no banco de dados: Marcas e Carros.
create table carros(
marca varchar(100),
modelo varchar(100),
ano int,
cor varchar(100)
)
create table marcas(
marca varchar(50),
nome varchar(50)
)
Com as tabelas criadas, vou inserir alguns dados nelas:
insert into marcas values('VW','Volkswagem')
insert into marcas values('Ford','Ford')
insert into marcas values('GM','General Motors')
insert into marcas values('Fiat','Fiat')
insert into marcas values('Renault','Renault')
insert into marcas values('MB','Mercedes Bens')
insert into carros values('VW','Fox',2005,'preto');
insert into carros values('VW','Fox',2008,'preto');
insert into carros values('Ford','Ecosport',2009,'verde');
insert into carros values('Ford','KA',2008,'prata');
insert into carros values('Fiat','Punto',2008,'branco');
insert into carros values('Fiat','Uno',2007,'preto');
insert into carros values('Fiat','Stilo',200,'4prata');
insert into carros values('Fiat','Uno',2005,'prata');
insert into carros values('Fiat','Stilo',2008,'verde');
insert into carros values('Fiat','Uno',2009,'branco');
insert into carros values('Peugeot','207',2010,'prata');
insert into carros values('Peugeot','207',2010,'prata');
insert into carros values('Peugeot','207',2007,'azul');
insert into carros values('Chrysler','300 C',2008,'verde');
Vamos analisar como ficaram as duas tabelas:
select * from marcas
select * from carros
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.
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
...