Beruflich Dokumente
Kultur Dokumente
s na coluna da direita.
Imagine que voc deseja listar todos os clientes de uma empresa, os valores de compras dentro do ms. Se voc deseja que aparea todos os clientes, independente de terem feito compras ou no, ento o Left join a juno ideal para esta consulta SQL. A juno Inner join um pouco diferente do left join, se aplicarmos ao exemplo anterior veremos que ela s retornaria os clientes que tiveram compras no ms.
Agora vamos inserir alguns dados nas tabelas criadas a fim de podermos reproduzir nossos exemplos.
insert into empregados(codigo_empregado,nome) values(1,'Luis') insert into empregados(codigo_empregado,nome) values(2,'Marina') insert into empregados(codigo_empregado,nome) values(3,'Letcia') insert into empregados(codigo_empregado,nome) values(4,'Gustavo') insert into empregados(codigo_empregado,nome) values(5,'Mateus') insert into pagamentos(codigo_empregado,valor) values(1,100) insert into pagamentos(codigo_empregado,valor) values(1,200) insert into pagamentos(codigo_empregado,valor) values(3,300) insert into pagamentos(codigo_empregado,valor) values(5,400) insert into pagamentos(codigo_empregado,valor) values(5,500) insert into descontos(codigo_empregado,valor) values(1,50) insert into descontos(codigo_empregado,valor) values(2,20) insert into descontos(codigo_empregado,valor) values(5,30)
Agora que j temos os dados populados na tabela, vamos ver um exemplo de Inner Join.
select e.nome, p.valor as pagamento from empregados as e INNER JOIN pagamentos as p ON e.codigo_empregado = p.codigo_empregado
Apesar de termos cinco empregados na tabela, ele mostrou apenas trs, o motivo que apenas estes trs tem pagamentos. Veja que o inner join fez uma juno entre empregados e pagamentos e desconsiderou os empregado sem pagamentos.
Neste caso apenas dois empregados foram mostrados j que inclumos na consulta os descontos, ou seja, a leitura que esta consulta fez : mostrar empregados quem tem pagamentos e descontos.
Os empregados 3 e 5 no tem pagamentos, mas ainda assim eles apareceram na consulta, j que a funo Left Join considera apenas a coluna da esquerda e retorna Null (nulo) quando a coluna da direita no tiver um valor correspondente.
O que fizemos foi uma espcie de left join em cascata e til quando queremos partir de uma base (empregados) e listar todas as correspondncias ou no das tabelas (pagamentos e descontos) a ela relacionadas. Bom, espero que estes pequenos e simples exemplos de consultas SQL possa ter ajudado na compreenso do Left join e Inner join, j que tenho percebido que muita gente tem dificuldade de compreender as diferenas entre eles. Veja tambm Join ou Junes SQL | Inner, left, right e full outer join que explora de forma mais ampla o assunto de joins. Outros assuntos relacionados:
Filtrar dados: between, like e IN em sql server, access e mysql Banco de dados e SQL Comando select em Mysql, SQL Server e Access Left join e inner join: juno em consultas SQL Criar tabelas, alterar e apagar com create table, alter e drop Join ou Junes SQL | Inner, left, right e full outer join COMPARTILHAR |