|
A palavra-chave LEFT JOIN retorna todos os registros da tabela esquerda (tabela1) e os registros correspondentes da tabela direita (tabela2).
O resultado é NULL do lado direito, se não houver correspondência.
Sintaxe:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
|
Banco de dados DB2:
Vejamos os dados da tabela "Pedidos" abaixo:
| NROPEDIDO | NROCLIENTE | DATAPEDIDO |
| 1001 | 10 | 2020-09-08 |
| 1002 | 99 | 2020-09-01 |
| 1003 | 17 | 2020-08-25 |
| 1004 | 76 | 2020-09-19 |
| 1005 | 44 | 2020-09-25 |
Vejamos os dados da tabela "Clientes" abaixo:
| NROCLIENTE | NOMECLIENTE | PAIS |
| 76 | Jack | America |
| 17 | Jancy | Germany |
| 20 | Carmen | Russia |
| 10 | Robert | India |
| 99 | Brian | China |
Observe que a coluna "NROCLIENTE" na tabela "Pedidos" se refere ao "NROCLIENTE" na tabela "Clientes".
A relação entre as duas tabelas acima é a coluna "NROCLIENTE".
Vamos ver como criar uma instrução SQL que selecionará todos os clientes e todos os pedidos que eles possam ter feito.
SELECT Customers.NOMECLIENTE
, Orders.NROPEDIDO
FROM Customers
LEFT JOIN Orders ON Customers.NROCLIENTE = Orders.NROCLIENTE
ORDER BY Customers.NOMECLIENTE;
|
Explicação:
A palavra-chave LEFT JOIN retorna todos os registros da tabela da esquerda (Clientes), mesmo se não houver correspondências na tabela da direita (Pedidos).
Resultado:
| NOMECLIENTE | NROPEDIDO |
| Brian | 1002 |
| Carmen | null |
| Jack | 1004 |
| Jancy | 1003 |
| Robert | 1001 |
Você notou o resultado da junção LEFT outer e RIGHT outer?
O resultado é o mesmo.
Você sabe por quê?
Porque acabamos de trocar a tabela na instrução SQL.
Veja também:
|