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:
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 .
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
Tabela: pedidos
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:
'2020-04-30';>