SQL – Consultas com JOIN

O comando JOIN do SQL tem a função básica de agregar tabelas mediante um campo que faça sentido às mesmas.

Por exemplo, considerando o diagrama hipotético abaixo, caso eu queira como retorno todas as compras de um cliente, poderia retornar algo como:

SELECT * FROM cliente JOIN compra ON idcliente

Mas e se eu quero retornar somente os clientes que estão ligados a uma compra? Ou compras que não estão ligadas a nenhum cliente cadastrado?

Para esses tipos de consultas mais complexas existem uma série de complementos para o JOIN, dos quais os mais utilizados são INNER JOIN e LEFT JOIN, que permitem filtrar os resultados da junção entre tabelas. Esses “complementos” são:


INNER JOIN

SELECT * FROM cliente INNER JOIN compra ON idcliente

Utilizando o INNER JOIN você terá como resultado de sua consulta somente os pares de cliente/compra, ou seja, os casos em que uma compra não está ligada a nenhum cliente, ou cliente que não possuem compras, não serão apresentados no resultado.


LEFT JOIN

O LEFT JOIN traz todos os resultados da tabela mais à esquerda e o agrega ao seu valor correspondente das outras tabelas, caso existam. Ou seja, nesse caso a consulta retornaria todos os clientes e suas compras, caso existam. Caso não existam compras para essa cliente os campos relativos à tabela de compras ficariam em branco.


RIGHT JOIN

SELECT * FROM cliente RIGHT JOIN compra ON idcliente

De forma análoga ao LEFT JOIN, o RIGHT JOIN traz todos os resultados da tabela mais à direita e o agrega ao seu valor correspondente das outras tabelas, caso existam. Ou seja, nesse caso a consulta retornaria todas as compras e, caso existam, seus clientes. Caso não existam clientes para essa compra os campos relativos à tabela de clientes ficariam em branco.


OUTER JOIN

SELECT * FROM cliente OUTER JOIN compra ON idcliente

O comando OUTER JOIN, mesmo não sendo muito conhecido, pode ser bastante útil em alguns casos. Ele traria como resultado todos os clientes que não estão ligados à nenhuma compra.


BONUS: Descomplicando SQL Joins

Uma imagem vale mais do que mil palavras:

comando join sql

// Comente!

comentários

Olá, eu sou a Gabi e eu criei o "Eu Faço Programas" em 2011, quando ainda trabalhava em desenvolvimento web. Atualmente meu trabalho é focado em estratégia digital e redes sociais. Quer saber mais? www.imgabi.com

9 Comentários

  • […] Agora trabalheremos com uma query um pouco maior: devemos retornar todos os funcionários que trabalharam com milho, seja na colheita ou plantio, em 2010. Utilizando o INNER JOIN retornarei todos os relacionamentos entre funcionários e plantios/colhido caso existem funcionários SOMENTE. Se ainda tem dúvidas sobre comandos com Join, consulte esse post. […]

  • […] Agora trabalheremos com uma query um pouco maior: devemos retornar todos os funcionários que trabalharam com milho, seja na colheita ou plantio, em 2010. Utilizando o INNER JOIN retornarei todos os relacionamentos entre funcionários e plantios/colhido caso existem funcionários SOMENTE. Se ainda tem dúvidas sobre comandos com Join, consulte esse post. […]

  • […] Agora trabalheremos com uma query um pouco maior: devemos retornar todos os funcionários que trabalharam com milho, seja na colheita ou plantio, em 2010. Utilizando o INNER JOIN retornarei todos os relacionamentos entre funcionários e plantios/colhido caso existem funcionários SOMENTE. Se ainda tem dúvidas sobre comandos com Join, consulte esse post. […]

  • Responder dezembro 29, 2011

    My Homepage

    … [Trackback]…

    […] Read More: eufacoprogramas.com/desenvolvimento/sql-consultas-com-join/ […]…

  • Responder dezembro 30, 2011

    buy youtube views

    … [Trackback]…

    […] Read More here: eufacoprogramas.com/desenvolvimento/sql-consultas-com-join/ […]…

  • […] Agora trabalheremos com uma query um pouco maior: devemos retornar todos os funcionários que trabalharam com milho, seja na colheita ou plantio, em 2010. Utilizando o INNER JOIN retornarei todos os relacionamentos entre funcionários e plantios/colhido caso existem funcionários SOMENTE. Se ainda tem dúvidas sobre comandos com Join, consulte esse post. […]

  • Responder fevereiro 14, 2012

    Kamagra

    … [Trackback]…

    […] Informations on that Topic: eufacoprogramas.com/desenvolvimento/sql-consultas-com-join/ […]…

  • Responder fevereiro 14, 2012

    PPI

    … [Trackback]…

    […] There you will find 79508 more Infos: eufacoprogramas.com/desenvolvimento/sql-consultas-com-join/ […]…

  • Responder março 11, 2014

    Jéssica

    Muito bacana a explicação,mas estou no meu curso de TI prestes a fazer uma prova de banco de dados no access e não sei nada ! vou tirar vermelha,mas obg pela ajuda !! beijinhos !!

// Siga as boas práticas: Comente! Clique aqui para cancelar a resposta.

Deixe uma resposta para Kamagra Cancelar resposta