{"id":863,"date":"2026-06-02T10:00:28","date_gmt":"2026-06-02T13:00:28","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/06\/02\/aula-11-joins-no-mysql-inner-left-right-e-cross-join\/"},"modified":"2026-06-02T10:00:28","modified_gmt":"2026-06-02T13:00:28","slug":"aula-11-joins-no-mysql-inner-left-right-e-cross-join","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/06\/02\/aula-11-joins-no-mysql-inner-left-right-e-cross-join\/","title":{"rendered":"Aula 11: Joins no MySQL \u2014 INNER, LEFT, RIGHT e CROSS JOIN"},"content":{"rendered":"<p>Nesta aula, voc\u00ea vai aprender sobre um dos conceitos mais poderosos e fundamentais do MySQL: os <strong>Joins no MySQL<\/strong>. Compreender como realizar diferentes tipos de join \u00e9 essencial para extrair dados de m\u00faltiplas tabelas de maneira eficiente. Vamos explorar cada tipo de join \u2014 INNER, LEFT, RIGHT e CROSS \u2014 atrav\u00e9s de explica\u00e7\u00f5es pr\u00e1ticas e exemplos que voc\u00ea pode testar imediatamente. Este conhecimento \u00e9 crucial n\u00e3o apenas para consultas complexas, mas tamb\u00e9m para otimizar a performance do seu banco de dados, algo que n\u00f3s, na JRT Technology Solutions, utilizamos diariamente para entregar solu\u00e7\u00f5es eficazes aos nossos clientes.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Entender os diferentes tipos de <strong>Joins no MySQL<\/strong><\/li>\n<li>Aprender a sintaxe e uso de cada tipo de join<\/li>\n<li>Ver exemplos pr\u00e1ticos e como aplic\u00e1-los no dia a dia<\/li>\n<li>Conhecer dicas de performance e melhores pr\u00e1ticas<\/li>\n<\/ul>\n<h3>INNER JOIN \u2014 Unindo Tabelas com Correspond\u00eancias<\/h3>\n<p>O <strong>INNER JOIN<\/strong> \u00e9 o tipo de join mais utilizado no <strong>MySQL<\/strong>. Ele retorna apenas as linhas que t\u00eam correspond\u00eancias em ambas as tabelas. Isso \u00e9 \u00fatil quando voc\u00ea quer combinar dados de duas tabelas que t\u00eam uma chave comum.<\/p>\n<pre><code>SELECT employees.name, departments.name\nFROM employees\nINNER JOIN departments ON employees.department_id = departments.id;<\/code><\/pre>\n<p>O c\u00f3digo acima faz um <strong>INNER JOIN<\/strong> entre as tabelas <strong>employees<\/strong> e <strong>departments<\/strong> com base no campo <strong>department_id<\/strong>, retornando apenas os registros que t\u00eam correspond\u00eancia em ambos os lados.<\/p>\n<h3>LEFT JOIN \u2014 Incluindo Todos de uma Tabela<\/h3>\n<p>O <strong>LEFT JOIN<\/strong> retorna todas as linhas da tabela \u00e0 esquerda (no nosso caso, <strong>employees<\/strong>), al\u00e9m das correspond\u00eancias na tabela \u00e0 direita (<strong>departments<\/strong>). Se n\u00e3o houver correspond\u00eancia, NULL \u00e9 retornado nas colunas da tabela \u00e0 direita.<\/p>\n<pre><code>SELECT employees.name, departments.name\nFROM employees\nLEFT JOIN departments ON employees.department_id = departments.id;<\/code><\/pre>\n<p>Isso \u00e9 especialmente \u00fatil quando se deseja listar todos os funcion\u00e1rios, inclusive aqueles que ainda n\u00e3o est\u00e3o alocados a nenhum departamento, como fazemos em muitos de nossos projetos na JRT Technology Solutions para auditoria completa de dados.<\/p>\n<h3>RIGHT JOIN \u2014 Incluindo Todos de Outra Tabela<\/h3>\n<p>O <strong>RIGHT JOIN<\/strong> \u00e9 o inverso do <strong>LEFT JOIN<\/strong>. Ele retorna todas as linhas da tabela \u00e0 direita e as correspond\u00eancias da tabela \u00e0 esquerda.<\/p>\n<pre><code>SELECT employees.name, departments.name\nFROM employees\nRIGHT JOIN departments ON employees.department_id = departments.id;<\/code><\/pre>\n<p>Este join \u00e9 \u00fatil quando voc\u00ea quer garantir que todos os departamentos, mesmo os sem funcion\u00e1rios, apare\u00e7am na consulta.<\/p>\n<h3>CROSS JOIN \u2014 Produto Cartesiano<\/h3>\n<p>O <strong>CROSS JOIN<\/strong> retorna o produto cartesiano das duas tabelas. Ou seja, combina cada linha da primeira tabela com todas as linhas da segunda tabela. Este tipo de join \u00e9 raramente usado, pois pode gerar um n\u00famero de resultados muito grande.<\/p>\n<pre><code>SELECT employees.name, departments.name\nFROM employees\nCROSS JOIN departments;<\/code><\/pre>\n<p>Utilizamos o <strong>CROSS JOIN<\/strong> mais como conceito em alguns cen\u00e1rios anal\u00edticos avan\u00e7ados, sempre com cuidado quanto \u00e0 performance.<\/p>\n<h3>Resumo da Aula 11<\/h3>\n<p>Hoje, aprofundamos nosso conhecimento sobre os <strong>Joins no MySQL<\/strong>, compreendendo quando e como usar cada tipo para obter informa\u00e7\u00f5es cruciais a partir de v\u00e1rias tabelas. Esse conhecimento \u00e9 essencial para qualquer administrador de banco de dados ou desenvolvedor. Na pr\u00f3xima aula, vamos explorar estrat\u00e9gias de otimiza\u00e7\u00e3o de consultas, algo que nossa equipe na JRT Technology Solutions prioriza para maximizar a efici\u00eancia de nossos sistemas.<\/p>\n<div style=\"margin:48px 0 32px;padding:32px 24px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px;text-align:center;\">\n<p style=\"margin:0 0 8px;font-size:17px;color:#111827;font-weight:700;\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 24px;font-size:15px;color:#1f2937;font-weight:400;\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de MySQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1%21+Tenho+interesse+no+treinamento+de+MySQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:600;padding:14px 28px;border-radius:100px;text-decoration:none;box-shadow:0 4px 12px rgba(37,211,102,0.4);letter-spacing:0.01em;\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\">\n      <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n    <\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Descubra como usar INNER, LEFT, RIGHT e CROSS JOIN no MySQL com a Aula 11. Domine joins e otimize suas querys. Acesse e aprenda agora!<\/p>\n","protected":false},"author":1,"featured_media":862,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[455,1507,1504,1503,1505,1506],"class_list":["post-863","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-banco-de-dados-sql","tag-cross-join-explicacao","tag-inner-join-exemplo","tag-joins-mysql","tag-left-join-tutorial","tag-right-join-mysql"],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=863"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/862"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}