logo

Diferença entre junção à esquerda e junção à direita

O MySQL tem principalmente dois tipos de junções chamadas LEFT JOIN e RIGHT JOIN. A principal diferença entre essas junções é a inclusão de linhas não correspondentes . LEFT JOIN inclui todos os registros do lado esquerdo e linhas correspondentes da tabela direita, enquanto RIGHT JOIN retorna todas as linhas do lado direito e linhas não correspondentes da tabela esquerda. Nesta seção, conheceremos as diferenças populares entre a junção ESQUERDA e DIREITA. Antes de explorar a comparação, vamos primeiro entender as cláusulas JOIN, LEFT JOIN e RIGHT JOIN em MySQL .

O que é a cláusula JOIN?

A juntar é usado para consultar dados de várias tabelas e retorna o resultado combinado de duas ou mais tabelas por meio de uma condição. A condição na cláusula join indica como as colunas são correspondidas entre as tabelas especificadas.

O que é a cláusula LEFT JOIN?

A cláusula Left Join une duas ou mais tabelas e retorna todas as linhas da tabela esquerda e os registros correspondentes da tabela direita ou retorna nulo se não encontrar nenhum registro correspondente. Também é conhecido como Junção Externa Esquerda . Portanto, Outer é a palavra-chave opcional para usar com Left Join.

Podemos entendê-lo com a seguinte representação visual:

Junção à Esquerda vs Junção à Direita

Para ler mais informações sobre a junção ESQUERDA, Clique aqui .

O que é a cláusula RIGHT JOIN?

A cláusula Right Join une duas ou mais tabelas e retorna todas as linhas da tabela à direita e apenas os resultados da outra tabela que atenderam à condição de junção especificada. Se encontrar registros não correspondentes na tabela do lado esquerdo, ele retornará o valor Nulo. Também é conhecido como Junção Externa Direita . Portanto, Outer é a cláusula opcional para usar com Right Join.

Podemos entendê-lo com o seguinte representação visual .

Junção à Esquerda vs Junção à Direita

Para ler mais informações sobre RIGHT JOIN, clique aqui.

Sintaxe da cláusula LEFT JOIN

A seguir está a sintaxe geral de LEFT JOIN:

 SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

A seguir está a sintaxe geral de LEFT OUTER JOIN:

 SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Sintaxe da cláusula RIGHT JOIN

A seguir está a sintaxe geral de RIGHT JOIN:

 SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

A seguir está a sintaxe geral de RIGHT OUTER JOIN:

 SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

JUNTE-SE À ESQUERDA vs. JUNTE-SE À DIREITA

A tabela de comparação a seguir explica suas principais diferenças de maneira rápida:

ASSOCIAÇÃO À ESQUERDA JUNTE-SE À DIREITA
Ele une duas ou mais tabelas, retorna todos os registros da tabela esquerda e as linhas correspondentes da tabela direita. É usado para unir duas ou mais tabelas, retorna todos os registros da tabela da direita e as linhas correspondentes da tabela da esquerda.
O conjunto de resultados conterá valor nulo se não houver linha correspondente na tabela do lado direito. O conjunto de resultados conterá valor nulo se não houver linha correspondente na tabela do lado esquerdo.
Também é conhecido como LEFT OUTER JOIN. Também é chamado de RIGHT OUTER JOIN.

Exemplo

Vamos entender as diferenças entre as duas junções por meio de exemplos. Suponha que temos uma tabela chamada ' cliente ' e ' pedidos 'que contém os seguintes dados:

Tabela: cliente

Junção à Esquerda vs Junção à Direita

Tabela: pedidos

Junção à Esquerda vs Junção à Direita

Exemplo de LEFT JOIN

A instrução SQL a seguir retorna os registros correspondentes de ambas as tabelas usando a consulta LEFT JOIN:

 SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>

Após a execução bem-sucedida da consulta, obteremos a seguinte saída:

Junção à Esquerda vs Junção à Direita