Juntando -se a mais de 3 tabelas no SQL Server
Aqui está um exemplo de ingressar em quatro tabelas no SQL Server, juntamente com explicações:
Cenário: Imagine um banco de dados para uma livraria:
*
clientes: Armazena as informações do cliente (CustomerID, FirstName, LastName, Email)
*
Ordens: Contém detalhes do pedido (OrderId, CustomerID, OrderDate, TotalAmount)
*
orderItems: Liste os itens em cada pedido (OrderItemid, OrderId, Bookid, Quantidade)
*
Livros: Possui informações sobre cada livro (bookid, título, autor, preço)
Objetivo: Obtenha uma lista de nomes de clientes, datas de pedidos e títulos de livros que eles compraram.
`` `SQL
Selecione
C. Firstname,
c.LastName,
O.Orderdate,
B.Título como Booktitle
DE
Clientes c
JUNTAR
Ordens o em c.customerid =O.customerid
JUNTAR
OrderItems Oi em O.OrderId =Oi.OrderId
JUNTAR
LIVROS B ON OI.BOOKID =B.BookId
Ordem por
c.LastName, O.Orderdate;
`` `
Explicação: 1.
Selecione Cláusula: Especifica as colunas para recuperar (nome do cliente, data do pedido, título do livro).
2.
da cláusula: Liste as tabelas envolvidas na junção.
3.
Junte -se às cláusulas: Conecte tabelas com base em colunas comuns.
* `Ingressar ordens o no c.customerId =o.customerid`:conecta 'clientes` e` pedidos' na coluna `clienteIid '.
* `Ingressar o pedido oi oi no O.OrderId =oi.OrderId`:conecta` ordens` e `OrderItems` na coluna` OrderId`.
* `Participe de livros B no oi.BookId =B.Bookid`:Connects` OrderItems` e `Books` na coluna` bookid`.
4.
Ordem por cláusula: Classifica os resultados pelo sobrenome do cliente e data do pedido.
Pontos de chave: *
Tipos de junção: Você pode usar diferentes tipos de junção como `esquerda junção`,` junção direita` ou `junção completa ', dependendo dos seus requisitos específicos.
* Aliases: O uso de aliases (por exemplo, `C` para` clientes`) torna a consulta mais legível.
*
nomes de colunas: Cuidado com os nomes de colunas duplicados nas tabelas. Use aliases da tabela (por exemplo, `b.title`) para esclarecer.
*
Otimização: Para consultas complexas, considere o uso de índices nas colunas de junção para melhorar o desempenho.
Notas adicionais: * Este exemplo demonstra uma junção básica usando várias tabelas. Você pode modificar a consulta para incluir mais colunas, filtros ou funções agregadas com base em suas necessidades específicas.
* A cláusula `Ordem By` é opcional, mas ajuda a organizar os resultados de uma maneira significativa.
Sinta -se à vontade para adaptar este exemplo ao seu próprio esquema de banco de dados.