MySQL junção à esquerda

Resumo: neste tutorial, irá aprender sobre a cláusula MySQL LEFT JOIN e como aplicá-la à consulta de dados de duas ou mais tabelas.

Introdução à junção esquerda de MySQL

a LEFT JOIN permite-lhe consultar dados de duas ou mais tabelas. Semelhante a tag INNER JOIN cláusula, o LEFT JOIN é uma cláusula opcional de SELECT declaração, que aparece imediatamente após o FROM cláusula.,

suponha que deseja juntar duas tabelas t1et2.

a instrução A seguir mostra como usar o LEFT JOIN cláusula para juntar as duas tabelas:

Code language: SQL (Structured Query Language) (sql)

Quando você usar o LEFT JOIN cláusula, os conceitos da tabela à esquerda e à direita da tabela são introduzidos.

na sintaxe acima, t1é a tabela esquerda et2 é a tabela direita.,

TheLEFT JOIN clause selects data starting from the left table (t1). Ele corresponde a cada linha da tabela à esquerda (t1) com que cada linha da tabela à direita(t2) com base no join_condition.

Se as linhas de ambas as tabelas causar a condição de associação avalia TRUE LEFT JOIN combinam colunas de linhas de ambas as tabelas para uma nova linha e inclui esta nova linha na tabela de linhas de resultado.,

No caso de a linha da tabela à esquerda (t1) não corresponde com qualquer linha da tabela à direita(t2), LEFT JOIN ainda combina colunas de linhas de ambas as tabelas em uma nova linha e incluir uma nova linha na tabela de linhas de resultado. No entanto, ele usa NULL para todas as colunas da linha a partir da tabela direita.

por outras palavras, LEFT JOIN devolve todas as linhas da tabela esquerda, independentemente de uma linha da tabela esquerda ter ou não uma linha correspondente da tabela direita., Se não houver correspondência, as colunas da linha da tabela direita irão conter NULL.

O seguinte diagrama de Venn ajuda você a visualizar como o LEFT JOIN cláusula funciona:

MySQL LEFT JOIN – Diagrama de Venn

MySQL LEFT JOIN exemplos

Vamos dar alguns exemplos de como usar o LEFT JOIN cláusula.,

1) Utilizar a cláusula de junção à esquerda MySQL para juntar dois quadros

ver os quadros seguintes customers e orders na base de dados de amostras.

Cada cliente pode ter zero ou mais ordens enquanto cada ordem tem de pertencer a um cliente.,

Esta consulta utiliza o LEFT JOIN cláusula para localizar todos os clientes e suas ordens:

Code language: SQL (Structured Query Language) (sql)

como Alternativa, você pode economizar alguma digitação usando aliases de tabela:

Code language: SQL (Structured Query Language) (sql)

neste exemplo:

  • customers é a esquerda da tabela e orders é a tabela à direita.
  • a cláusulaLEFT JOIN devolve todos os clientes, incluindo os que não têm encomenda., Se um cliente não tem ordem, os valores na coluna orderNumber e status são NULL.,

Devido a ambas as tabelas clientes e encomendas tem o mesmo nome de coluna ( customerNumber), na condição de associação com o operador igual, você pode usar o USANDO uma sintaxe como a seguinte:

Code language: SQL (Structured Query Language) (sql)

As cláusulas seguintes são equivalentes:

Code language: SQL (Structured Query Language) (sql)

E

Code language: SQL (Structured Query Language) (sql)

Se você substituir o LEFT JOIN cláusula INNER JOIN cláusula, você terá a apenas a clientes que tenham pelo menos uma ordem.,

2) usar a cláusula de junção à esquerda do MySQL para encontrar linhas não compensadas

o LEFT JOIN é muito útil quando você quiser encontrar linhas numa tabela que não tenha uma linha correspondente de outra tabela.,”>

para encontrar clientes que não possuem ordem:

Code language: SQL (Structured Query Language) (sql)

3) Usando o MySQL LEFT JOIN para juntar três tabelas

Veja a seguir três tabelas employees customers e payments:

Este exemplo usa dois LEFT JOIN cláusulas para juntar-se aos três tabelas: employees customers e payments.,

Code language: SQL (Structured Query Language) (sql)

Esta imagem mostra o resultado parcial:

Como funciona.

  • o primeiro LEFT JOINdevolve todos os empregados e clientes que representavam cada empregado ouNULL se o empregado não estiver a cargo de nenhum cliente.
  • o segundo LEFT JOINdevolve pagamentos de cada cliente representado por um empregado ouNULL se o cliente não tiver pagamento.

condição na qual a cláusula vs., Na cláusula

ver o exemplo seguinte.

Code language: SQL (Structured Query Language) (sql)

Este exemplo usado o LEFT JOIN cláusula para consultar dados a partir de tabelas orders e orderDetails. A consulta devolve a ordem e os seus itens de linha do número de ordem 10123.,

no Entanto, se você mover a condição de WHERE cláusula ON cláusula:

Code language: SQL (Structured Query Language) (sql)

Ele vai ter um significado diferente.,

neste caso, a consulta retorna todos os pedidos, mas apenas a ordem de 10123 vai ter itens de linha associados a ela como na imagem a seguir:

Repare que para INNER JOIN cláusula, a condição a ON cláusula é equivalente à condição de WHERE cláusula.

neste tutorial, você aprendeu a usar a cláusula MySQL LEFT JOIN para juntar dados de duas ou mais tabelas.,

  • este tutorial foi útil?
  • YesNo

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *