{"id":1546,"date":"2020-11-30T15:58:46","date_gmt":"2020-11-30T18:58:46","guid":{"rendered":"https:\/\/kondado.com.br\/blog\/?p=1546"},"modified":"2025-11-24T17:36:16","modified_gmt":"2025-11-24T20:36:16","slug":"be-a-ba-do-sql-usando-join-para-combinar-tabelas","status":"publish","type":"post","link":"https:\/\/kondado.com.br\/blog\/blog\/2020\/11\/30\/be-a-ba-do-sql-usando-join-para-combinar-tabelas\/","title":{"rendered":"B\u00ea-\u00e1-b\u00e1 do SQL: Usando JOIN para combinar tabelas"},"content":{"rendered":"\n<p class=\"has-luminous-vivid-amber-background-color has-background\">Material de apoio:<br>1. Antes de iniciar esse tutorial, acesse a introdu\u00e7\u00e3o da s\u00e9rie de tutoriais<strong>&nbsp;<a href=\"https:\/\/kondado.com.br\/blog\/blog\/2020\/10\/29\/be-a-ba-do-sql-introducao\/\">clicando aqui<\/a><\/strong>, siga o passo a passo para usar a nossa plataforma interativa de SQL e pratique em tempo real.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#d7cbab\"><strong>Confira tamb\u00e9m os posts anteriores da s\u00e9rie:<br>1.&nbsp;<a href=\"https:\/\/kondado.com.br\/blog\/blog\/2020\/10\/29\/be-a-ba-do-sql-introducao\/\">Introdu\u00e7\u00e3o<\/a><br>2.&nbsp;<a href=\"https:\/\/kondado.com.br\/blog\/blog\/2020\/11\/04\/be-a-ba-do-sql-estrutura-do-select\/\">Estrutura do SELECT<br><\/a>3.&nbsp;<a href=\"https:\/\/kondado.com.br\/blog\/blog\/2020\/11\/09\/be-a-ba-do-sql-filtrando-valores-com-o-where\/\">Filtrando valores com o WHERE<\/a><br>4.&nbsp;<a href=\"https:\/\/kondado.com.br\/blog\/blog\/2020\/11\/11\/be-a-ba-do-sql-agrupando-valores-com-o-group-by\/\">Agrupando valores com o GROUP BY<\/a><br>5. <a href=\"https:\/\/kondado.com.br\/blog\/blog\/2020\/11\/17\/be-a-ba-do-sql-usando-order-by-e-limit\/\">Usando ORDER BY e LIMIT<\/a><\/strong><\/p>\n\n\n\n<p>A fun\u00e7\u00e3o do <strong>JOIN no SQL<\/strong> \u00e9 combinar duas tabelas atrav\u00e9s de alguma chave ou valor comum entre elas. <\/p>\n\n\n\n<p>Existem diversos tipos de JOINs no SQL, no tutorial de hoje iremos falar sobre o<strong> INNER JOIN<\/strong> e o<strong> LEFT JOIN<\/strong>, que s\u00e3o os tipos mais usados.<\/p>\n\n\n\n<p>Para os exemplos abaixo vamos considerar as tabelas &#8220;pessoas&#8221; e &#8220;dados_adicionais&#8221; do nosso banco de testes:<\/p>\n\n\n\n<div class=\"wp-block-columns has-2-columns\">\n<div class=\"wp-block-column\">\n<figure class=\"wp-block-image\"><img src=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-1.png\" alt=\"O atributo alt desta imagem est\u00e1 vazio. O nome do arquivo \u00e9 image-1.png\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"237\" height=\"503\" src=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-33.png\" alt=\"\" class=\"wp-image-1548\" srcset=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-33.png 237w, https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-33-141x300.png 141w\" sizes=\"(max-width: 237px) 100vw, 237px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div data-slot=\"dwc\" data-param-slot-name=\"ma-dwc-2\"><\/div>\n\n\n\n<p>Para combinar as duas tabelas em um JOIN \u00e9 importante garantir que ambas tenham uma coluna em comum. No caso do nosso exemplo, a coluna &#8220;id&#8221; \u00e9 a chave que ser\u00e1 usada para cruz\u00e1-las.<\/p>\n\n\n\n<h2><strong>Diferen\u00e7a entre INNER JOIN e LEFT JOIN<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"648\" height=\"216\" src=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-34.png\" alt=\"\" class=\"wp-image-1549\" srcset=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-34.png 648w, https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-34-300x100.png 300w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><\/figure><\/div>\n\n\n\n<p>Enquanto o <strong>INNER JOIN <\/strong>combina todos os valores das duas tabelas e retorna no resultado somente as linhas presentes em ambas, o <strong>LEFT JOIN <\/strong>traz todas as linhas presentes na tabela 1 (ou tabela da esquerda) com os valores correspondentes da tabela 2.<\/p>\n\n\n\n<h2><strong>Sintaxe b\u00e1sica do JOIN<\/strong><\/h2>\n\n\n\n<h3><strong>INNER JOIN<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT p.id, p.nome, p.idade, d.estado_civil\nFROM pessoas p\nINNER JOIN dados_adicionais d ON p.id = d.id<\/code><\/pre>\n\n\n\n<p>No c\u00f3digo acima estamos trazendo as colunas id, nome e idade da tabela &#8220;pessoas&#8221; e a coluna estado_civil da tabela &#8220;dados_adicionais&#8221;.  <\/p>\n\n\n\n<p>A coluna id \u00e9 a chave que estamos usando para cruzar as duas tabelas, neste caso, o resultado trar\u00e1 apenas ids que existam em ambas as tabelas. <\/p>\n\n\n\n<p>Os alias &#8220;p&#8221; e &#8220;d&#8221; s\u00e3o importantes para identificar de qual tabela est\u00e1 vindo a determinada coluna.<\/p>\n\n\n\n<h3><strong>LEFT JOIN<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT p.id, nome, idade, estado_civil\nFROM pessoas p\nLEFT JOIN dados_adicionais d ON p.id = d.id<\/code><\/pre>\n\n\n\n<p>No caso do exemplo acima, a sintaxe \u00e9 bastante parecida com a do <strong>INNER JOIN<\/strong>, por\u00e9m, no resultado vir\u00e3o todas as linhas da tabela &#8220;pessoas&#8221; com os valores correspondentes encontrados na tabela &#8220;dados adicionais&#8221;. <\/p>\n\n\n\n<p>Quando n\u00e3o houver correspond\u00eancia na segunda tabela, a coluna estado_civil ficar\u00e1 em branco na determinada linha.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"288\" height=\"518\" src=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-35.png\" alt=\"\" class=\"wp-image-1550\" srcset=\"https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-35.png 288w, https:\/\/kondado.com.br\/blog\/wp-content\/uploads\/2020\/11\/image-35-167x300.png 167w\" sizes=\"(max-width: 288px) 100vw, 288px\" \/><\/figure><\/div>\n\n\n\n<h2><strong>O que voc\u00ea achou do conte\u00fado?<\/strong><\/h2>\n\n\n\n<p>N\u00e3o deixe de conferir os post anteriores da nossa s\u00e9rie de tutoriais e fique de olho no nosso blog para acompanhar os novos conte\u00fados!<\/p>\n\n\n\n<p>A Kondado \u00e9 uma plataforma que se conecta a mais de<strong> 80 fontes de dados<\/strong> sem voc\u00ea precisar escrever uma linha de c\u00f3digo. <\/p>\n\n\n\n<p>Com ela, voc\u00ea conecta e organiza seus dados e leva tudo direto para <strong><a href=\"https:\/\/kondado.com.br\/dashboards-prontos.html\" target=\"_blank\" rel=\"noreferrer noopener\">dashboards<\/a><\/strong> no <strong>Power BI<\/strong> ou no <strong>Looker Studio,<\/strong> de forma autom\u00e1tica e confi\u00e1vel.<\/p>\n\n\n\n<p>Al\u00e9m disso, a Kondado facilita a entrega dos dados para <strong><a href=\"https:\/\/kondado.com.br\/integracao-de-dados.html\" target=\"_blank\" rel=\"noreferrer noopener\">bancos de dados, data warehouses, data lakes<\/a><\/strong> e outros destinos, atualizando automaticamente as informa\u00e7\u00f5es para facilitar suas an\u00e1lises.<\/p>\n\n\n\n<p>Teste a Kondado <strong><a href=\"http:\/\/app.kondado.com.br\/signup\" target=\"_blank\" rel=\"noreferrer noopener\">gr\u00e1tis por 14 dias<\/a><\/strong> e veja na pr\u00e1tica como \u00e9 ganhar tempo com dados prontos para usar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda a usar SQL JOIN para combinar tabelas e criar an\u00e1lises completas. Entenda INNER JOIN e LEFT JOIN com exemplos simples.<\/p>\n","protected":false},"author":4,"featured_media":1552,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[316,6,1],"tags":[46,285,304,292,317,240,301,300,325,213,278],"_links":{"self":[{"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/posts\/1546"}],"collection":[{"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1546"}],"version-history":[{"count":5,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/posts\/1546\/revisions"}],"predecessor-version":[{"id":4718,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/posts\/1546\/revisions\/4718"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/media\/1552"}],"wp:attachment":[{"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}