"Join" -bestemmelsen i SQL er et kraftig verktøy som lar deg kombinere data fra flere tabeller basert på en relatert kolonne. Her er en oversikt over funksjonene og hvordan det fungerer:
Formål:
* Kombiner data fra forskjellige tabeller: Hovedmålet med `Join` er å lage et enkelt resultatsett som inkluderer data fra to eller flere tabeller. Dette er viktig når databasen din har relatert informasjon lagret på tvers av flere tabeller.
* Etablere forhold: `Bli med 'definerer hvordan dataene fra de forskjellige tabellene skal kobles. Dette gjøres ved å spesifisere en felles kolonne (eller kolonner) som finnes i begge tabellene.
Typer av sammenføyninger:
SQL tilbyr forskjellige typer sammenføyninger, hver med sin egen oppførsel:
1. indre sammenføyning:
* Definisjon: Returnerer bare rader der sammenføyningstilstanden er oppfylt i begge tabellene. I hovedsak finner den matchende rader basert på sammenføyningstilstanden.
* eksempel: La oss si at du har et `Kundebord og et` Orders '-bord. En `indre sammenføyning på` CustomerId` -kolonnen ville bare returnere ordrene som er lagt ut av kunder som eksisterer i begge tabellene.
2. venstre sammenføyning (eller venstre ytre sammenføyning):
* Definisjon: Returnerer alle rader fra venstre tabell (den som er nevnt før `venstre join`) og matchende rader fra høyre bord. Hvis det ikke finnes noen samsvar i høyre tabell, inkluderer den `null` -verdier for de høyre tabellkolonnene.
* eksempel: Ved å bruke tabellene `kunder` og` ordrer ', ville en `venstre bli med` på `CustomerId` returnere alle kunder, selv om de ikke har lagt inn noen bestillinger. Bestillinger til eksisterende kunder vil bli inkludert, mens ikke-ordrerende kunder ville ha `null`-verdier for ordrelaterte kolonner.
3. høyre sammenføyning (eller høyre ytre sammenføyning):
* Definisjon: Returnerer alle rader fra høyre bord og matchende rader fra venstre bord. Ligner på `venstre Join`, men omvendt. Hvis det ikke finnes noen samsvar i venstre tabell, inkluderer den `null` -verdier for venstre tabellkolonner.
* eksempel: Ved å bruke tabellene `kunder` og` ordrer ', ville en "rett sammen" på `CustomerId` returnere alle bestillinger, selv om den tilsvarende kunden ikke eksisterer i` kunders tabell.
4. Full sammenføyning (eller full ytre sammenføyning):
* Definisjon: Returnerer alle rader fra begge bordene, uavhengig av om de har en kamp i den andre tabellen. Den inkluderer `null` -verdier for kolonner i tabellen der det ikke er noen matchende rad.
* eksempel: Ved å bruke tabellene `kunder` og` ordrer ', ville en "full join" på `customerid` returnere alle kunder og alle bestillinger. Hvis en kunde ikke har lagt inn en ordre, ville ordrelaterte kolonner være `null`. Tilsvarende, hvis en ordre ikke har en matchende kunde, vil kundrelaterte kolonner være `null`.
Syntaks:
`` SQL
Velg kolonne_list
Fra tabell1
Bli med tabell2
På join_condition;
`` `
* kolonne_list: Kolonnene du vil velge mellom de kombinerte tabellene.
* Tabell1, tabell2: Navnene på tabellene du vil være med.
* join_condition: Et uttrykk som definerer forholdet mellom tabellene. Dette innebærer vanligvis å sammenligne kolonner fra begge tabellene som bruker operatører som `=`, `<`, `>`, etc.
Eksempel:
`` SQL
Velg kunder.customerid, kunder.customername, bestillinger.orderid, bestillinger.orderdate
Fra kunder
Indre sammenføyningsordrer
På kunder.customerID =bestillinger.customerid;
`` `
Denne spørringen vil returnere et resultatsett som inneholder `CustomerId`,` CustomerName`, `OrderId` og` OrderDate` for alle bestillinger plassert av kunder som finnes i både `Customer` og` Orders` -tabellene.
Nøkkelhensyn:
* Join Type: Velg riktig sammenføyningstype basert på dataene du vil hente.
* Bli med tilstand: Forsikre deg om at din sammenføyningsbetingelse nøyaktig gjenspeiler forholdet mellom tabellene.
* ytelse: Komplekse sammenføyninger kan påvirke spørringsytelsen, så optimalisere dem for effektivitet.
Sammendrag:
`Join` -klausulen er en grunnleggende del av SQL som lar deg kombinere og analysere data fra flere tabeller. Å forstå de forskjellige typene og syntaks er avgjørende for å skrive effektive og effektive SQL -spørsmål.