logo

MySQL LEFT JOIN

O Left Join no MySQL é usado para consultar registros de várias tabelas. Esta cláusula é semelhante à cláusula Inner Join que pode ser usada com uma instrução SELECT imediatamente após a palavra-chave FROM. Quando usamos a cláusula Left Join, ela retornará todos os registros da primeira tabela (lado esquerdo), mesmo que nenhum registro correspondente seja encontrado na segunda tabela (lado direito). Se não encontrar nenhum registro de correspondência na tabela do lado direito, retornará nulo.

Em outras palavras, a cláusula Left Join retorna todas as linhas da tabela esquerda e os registros correspondentes da tabela direita ou retorna Null se nenhum registro correspondente for encontrado. Este Join também pode ser chamado de Junção Externa Esquerda cláusula. Portanto, Outer é a palavra-chave opcional para usar com Left Join.

Podemos entender isso com a seguinte representação visual onde Left Joins retorna todos os registros da tabela à esquerda e apenas os registros correspondentes da tabela à direita:

MySQL LEFT JOIN

Sintaxe LEFT JOIN do MySQL

A sintaxe a seguir explica a cláusula Left Join para unir duas ou mais tabelas:

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

Na sintaxe acima, tabela 1 é a tabela da esquerda, e mesa 2 é a tabela da direita. Esta cláusula retorna todos os registros da tabela1 e registros correspondentes da tabela2 com base no especificado condição de adesão .

alinhamento de texto css

Exemplo de MySQL LEFT JOIN

Vejamos alguns exemplos para entender o funcionamento da cláusula Left Join ou Left Outer Join:

mostrar aos usuários mysql

Cláusula LEFT JOIN para unir duas tabelas

Aqui, vamos criar duas tabelas ' clientes' e ' pedidos' que contém os seguintes dados:

Tabela: clientes

MySQL LEFT JOIN

Tabela: pedidos

MySQL LEFT JOIN

Para selecionar registros de ambas as tabelas, execute a seguinte consulta:

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

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

programa java simples
MySQL LEFT JOIN

MySQL LEFT JOIN com cláusula USING

A tabela clientes e pedidos possuem o mesmo nome de coluna, que é customer_id. Nesse caso, MySQL Left Join também pode ser usado com a cláusula USING para acessar os registros. A instrução a seguir retorna o ID do cliente, o nome do cliente, a ocupação, o preço e a data usando a cláusula Left Join com a palavra-chave USING.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

A instrução acima fornecerá a seguinte saída:

MySQL LEFT JOIN

MySQL LEFT JOIN com cláusula Group By

O Left Join também pode ser usado com a cláusula GROUP BY. A instrução a seguir retorna o ID do cliente, o nome do cliente, a qualificação, o preço e a data usando a cláusula Left Join com a cláusula GROUP BY.

 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

A instrução acima fornecerá a seguinte saída:

MySQL LEFT JOIN

LEFT JOIN com cláusula WHERE

A cláusula WHERE é usada para retornar o filtro resultado da tabela. O exemplo a seguir ilustra isso com a cláusula Left Join:

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

Esta afirmação dá o resultado abaixo:

MySQL LEFT JOIN

MySQL LEFT JOIN Várias Tabelas

Já criamos duas tabelas chamadas ' clientes' e ' pedidos' . Vamos criar mais uma tabela e nomeá-la como ' contatos' que contém os seguintes dados:

MySQL LEFT JOIN

Execute a seguinte instrução para unir as três tabelas clientes, pedidos e contatos:

seletor de consultas
 SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income; 

Após a execução bem-sucedida da consulta acima, a seguinte saída será obtida:

MySQL LEFT JOIN

Uso da cláusula LEFT JOIN para obter registros incomparáveis

A cláusula LEFT JOIN também é útil quando queremos obter registros na tabela que não contém nenhuma linha de dados correspondente de outra tabela.

Podemos entender isso com o seguinte exemplo que utiliza a cláusula LEFT JOIN para localizar um cliente que não possui número de celular:

como converter str para int
 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

A instrução acima retorna a seguinte saída:

MySQL LEFT JOIN

Diferença entre cláusula WHERE e ON no MySQL LEFT JOIN

No LEFT Join, a condição WHERE e ON dá um resultado diferente. Podemos ver as seguintes consultas para entender suas diferenças:

Cláusula ONDE

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

Ele fornecerá a seguinte saída que retorna:

MySQL LEFT JOIN

Cláusula ON

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Ele dará a seguinte saída:

MySQL LEFT JOIN

NOTA: As condições WHERE e ON na cláusula Inner Join sempre retornam resultados equivalentes.