Slår sammen mer enn 3 tabeller i SQL Server
Her er et eksempel på å slå sammen fire tabeller i SQL Server, sammen med forklaringer:
scenario: Se for deg en database for en bokhandel:
* kunder: Lagrer kundeinformasjon (CustomerId, FirstName, LastName, E -post)
* Bestillinger: Inneholder ordrede detaljer (OrderID, CustomerId, OrderDate, TotalAmount)
* OrderItems: Lister opp elementer i hver ordre (OrderItemid, OrderId, Bookid, Quantity)
* bøker: Har informasjon om hver bok (Bookid, tittel, forfatter, pris)
Mål: Få en liste over kundenavn, bestillingsdatoer og titlene på bøker de kjøpte.
`` SQL
VELGE
C.Firstname,
C.Lastname,
o.orderdate,
B.Title As Booktitle
FRA
Kunder c
Bli med
Bestillinger o på C.CustomerID =O.Customerid
Bli med
OrderItems oi on O.OrderId =Oi.OrderId
Bli med
Bøker B på oi.bookid =b.bookid
Bestill av
C.Lastname, O.OrderDate;
`` `
Forklaring:
1. Velg leddet: Spesifiserer kolonnene som skal hentes (kundenavn, bestillingsdato, boktittel).
2. fra klausul: Viser tabellene som er involvert i sammenføyningen.
3. Bli med klausuler: Koble tabeller basert på vanlige kolonner.
* `Bli med på bestillinger o på C.CustomerID =O.Customerid`:Kobler til` kunder` og `Ordrer` på` CustomerId` -kolonnen.
* `Bli med på OrderItems Oi på O.OrderId =Oi.OrderId`:Kobler til` Orders` og `OrderItems` på` OrderId` -kolonnen.
* `Bli med bøker b på oi.bookid =b.bookid`:Kobler til` orderItems` og `bøker` på` bookid` -kolonnen.
4. ordre etter klausul: Sorterer resultatene etter kunde etternavn og bestillingsdato.
Nøkkelpunkter:
* Bli med typer: Du kan bruke forskjellige sammenføyningstyper som `venstre join`,` Right Join` eller 'Full Join` avhengig av dine spesifikke krav.
* aliaser: Å bruke aliaser (f.eks. `C` for` kunder ') gjør spørringen mer lesbar.
* Kolonnenavn: Vær forsiktig med dupliserte kolonnenavn på tabell. Bruk tabellaliaser (f.eks. `B.title`) for å avklare.
* Optimalisering: For komplekse spørsmål, bør du vurdere å bruke indekser på Join -kolonnene for forbedret ytelse.
Ytterligere merknader:
* Dette eksemplet viser en grunnleggende sammenføyning ved hjelp av flere tabeller. Du kan endre spørringen for å inkludere flere kolonner, filtre eller samlede funksjoner basert på dine spesifikke behov.
* Bestillingen med ` -leddet er valgfritt, men hjelper til med å organisere resultatene på en meningsfull måte.
Tilpass dette eksemplet til ditt eget databaseskjema.