Summary: in this tutorial, you will learn about the SQL Server LEFT JOIN clause and how to use it to query data from multiple tables.

Introdução ao SQL Server LEFT JOIN clause

The LEFT JOIN clause allows you to query data from multiple tables. Devolve todas as linhas da mesa esquerda e as linhas correspondentes da mesa direita. Se não forem encontradas linhas correspondentes na tabela à direita, são usadas NULL.,

A seguir ilustra como unir duas tabelas T1 e T2 usando o LEFT JOIN cláusula:

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

nesta sintaxe, T1 e T2 são as tabelas de esquerda e direita, respectivamente.

para cada linha da tabela T1, a consulta A compara com todas as linhas da tabela T2. Se um par de linhas faz com que o predicado de junção avalie para TRUE, os valores da coluna destas linhas serão combinados para formar uma nova linha que então será incluída no conjunto de resultados.,

Se uma linha da tabela esquerda (T1) não tiver nenhuma linha correspondente da tabela T2, a consulta combina os valores da coluna da linha da tabela esquerda com NULL para cada coluna dos valores da tabela direita.

em resumo, a cláusula LEFT JOIN devolve todas as linhas da tabela esquerda (T1) e linhas correspondentes ou NULL valores da tabela direita (T2).

o seguinte ilustra o LEFT JOIN de dois quadros T1(1, 2, 3) e T2(A, B, C)., LEFT JOIN irá corresponder linhas da tabela T1 com linhas da tabela T2 uso de padrões:

nesta ilustração, nenhuma linha de T2 tabela coincide com a linha 1 da tabela T1, portanto, NULO é usado. As linhas 2 e 3 da tabela T1 correspondem às linhas a e B da tabela T2, respectivamente.,

SQL Server LEFT JOIN exemplo

Veja o seguinte products e order_items tabelas

Cada item da ordem do cliente inclui um produto. The link between theorder_items and theproducts tables is theproduct_id column.,

a instrução A seguir usa o LEFT JOIN cláusula para consultar dados a partir de products e order_items tabelas:

Como você pode ver claramente a partir do conjunto de resultados, uma lista de NULL order_id coluna indica que o correspondente produtos não vendidos para qualquer cliente ainda.

é possível utilizar a cláusulaWHERE para limitar o conjunto de resultados., A consulta a seguir retorna os produtos que não aparecem em qualquer ordem de vendas:

Como sempre, o SQL Server processa o WHERE cláusula depois de LEFT JOIN cláusula.,

The following example shows how to join three tables: production.products, sales.orders, and sales.order_items using the LEFT JOIN clauses:

Here is the output:

SQL Server LEFT JOIN: conditions in ON vs., Cláusula WHERE

O seguinte consulta localiza os produtos que pertencem a identificação da ordem de 100:

Vamos passar a condição de order_id = 100 ON cláusula:

A consulta retornou todos os produtos, mas apenas a ordem com 100 de identificação tem o produto associado da informação.,

Note que, para o INNER JOIN cláusula, a condição a ON cláusula é funcionalmente equivalente, se for colocado no WHERE cláusula.

neste tutorial, você aprendeu a usar o servidor SQL LEFT JOIN cláusula para recuperar dados de várias tabelas relacionadas.