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 t1
et2
.
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 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 eorders
é a tabela à direita.- a cláusula
LEFT JOIN
devolve todos os clientes, incluindo os que não têm encomenda., Se um cliente não tem ordem, os valores na colunaorderNumber
estatus
sãoNULL
.,
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 JOIN
devolve todos os empregados e clientes que representavam cada empregado ouNULL
se o empregado não estiver a cargo de nenhum cliente. - o segundo
LEFT JOIN
devolve 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