Gå med mer än 3 tabeller i SQL Server
Här är ett exempel på att gå med fyra tabeller i SQL Server, tillsammans med förklaringar:
Scenario: Föreställ dig en databas för en bokhandel:
* Kunder: Lagrar kundinformation (CustomerId, FirstName, LastName, E -post)
* order: Innehåller beställningsuppgifter (OrderID, CustomerID, OrderDate, TotalAmount)
* OrderItems: Listar objekt i varje beställning (OrderItemID, OrderID, Bookid, Quantity)
* böcker: Innehåller information om varje bok (Bookid, titel, författare, pris)
Mål: Få en lista över kundnamn, beställningsdatum och titlarna på böcker de köpte.
`` `SQL
VÄLJA
C.FirstName,
C.LastName,
O.orderDate,
B.Title som Booktitle
FRÅN
Kunder C
ANSLUTA SIG TILL
Beställningar o på c.customerid =o.Customerid
ANSLUTA SIG TILL
OrderItems oi på o.orderid =oi.orderid
ANSLUTA SIG TILL
Böcker B på oi.bookid =B.BookId
Beställa
C.LastName, O.OrderDate;
`` `
Förklaring:
1. Välj klausul: Anger kolumnerna för att hämta (kundnamn, beställningsdatum, boktitel).
2. Från klausul: Listar tabellerna som är involverade i kopplingen.
3. Gå med klausuler: Anslut tabeller baserade på vanliga kolumner.
* `Gå med i beställningar o på C.CustomerId =O.CustomerId`:Ansluter" Kunder "och" Order "i kolumnen" CustomerID ".
* `Gå med OrderItems oi på o.orderid =oi.orderid`:Anslutar` Order 'och `OrderItems' i kolumnen 'OrderID'.
* `Gå med i böcker B på oi.bookId =B.BookId`:Ansluter 'OrderItems' och 'Books' i kolumnen 'Bookid'.
4. Beställning efter klausul: Sorterar resultaten efter kundens efternamn och beställningsdatum.
Nyckelpunkter:
* Join -typer: Du kan använda olika kopplingstyper som "vänster join", "höger joint" eller "full koppling" beroende på dina specifika krav.
* alias: Att använda alias (t.ex. "C" för "kunder") gör frågan mer läsbar.
* Kolumnnamn: Var försiktig med duplicerade kolumnnamn över tabellerna. Använd tabellalias (t.ex. `B.Title ') för att klargöra.
* optimering: För komplexa frågor kan du överväga att använda index i sammanfogningskolumnerna för förbättrad prestanda.
Ytterligare anteckningar:
* Detta exempel visar en grundläggande sammanfogning med flera tabeller. Du kan ändra frågan för att inkludera fler kolumner, filter eller sammanlagda funktioner baserat på dina specifika behov.
* Klausulen "Order by" är valfri men hjälper till att organisera resultaten på ett meningsfullt sätt.
Känn dig fri att anpassa detta exempel till ditt eget databasschema.