Arbeide med SQL Server Ytre Sammenføyninger

I SQL Server, noen ganger er det nødvendig å hente, i tillegg til matchende rader, uovertruffen rader fra en eller begge av tabellene. En slik operasjon kalles en ytre sammenføyning.

Eksemplene 1 og 2 viser forskjellen mellom en naturlig bli med og tilsvarende ytre bli med. (Alle eksemplene i dette avsnittet bruk employee_enh bordet.,)

EKSEMPEL 1

Få full informasjon om alle ansatte, inkludert plassering av sin avdeling, som bor og arbeider i samme by:

resultatet er:

Eksempel 1 bruker en naturlig bli med for å vise resultatet sett med rader. Hvis du ønsker å vite alle andre eksisterende stue steder av ansatte, må du bruke (venstre) ytre bli med. Dette kalles en venstre ytre sammenføyning fordi alle rader fra tabellen på venstre side av føreren er kommet tilbake, hvorvidt de har en matchende rad i tabellen til høyre., Med andre ord, dersom det finnes ingen matchende rader i tabellen på høyre side, den ytre bli med likevel returnere en rad fra tabellen på venstre side, med NULL i hver kolonne den andre tabellen (se Eksempel 2). Databasen Motoren bruker operatøren VENSTRE YTRE SAMMENFØYNING å angi venstre ytre sammenføyning.

En høyre ytre sammenføyning er lik, men det returnerer alle radene i tabellen på høyre side av symbolet. Databasen Motoren bruker operatøren HØYRE YTRE SAMMENFØYNING å angi høyre ytre sammenføyning.,

EKSEMPEL 2

Få full informasjon om alle ansatte, inkludert plassering av sin avdeling, for alle byer som er enten levende eller både levende og arbeidsplass for ansatte:

resultatet er:

Som du kan se, når det finnes ingen matchende rad i tabellen på høyre side (avdeling, i dette tilfellet), venstre ytre sammenføyning fortsatt returnerer rader fra tabellen på venstre side (employee_enh), og kolonnene i den andre tabellen er fylt ut av NULL-verdier., Eksempel 3 viser bruk av høyre ytre sammenføyning-operasjonen.

EKSEMPEL 3

Få full informasjon om alle avdelinger, samt alle levende steder for sine ansatte, og for alle byer som enten er plasseringen av en avdeling eller som bor og arbeider stedet for en ansatt:

resultatet er:

I tillegg til den venstre og høyre ytre sammenføyninger, det er også full outer join, som er definert som en union av venstre og høyre ytre sammenføyninger. Med andre ord, alle rader fra begge tabellene er representert i resultatsettet., Hvis det ikke er noen tilsvarende rad i en av tabeller, kolonner er tilbake med NULL-verdier. Denne operasjonen er spesifisert med bruk av HELE YTRE BLI operatør.

Hver ytre bli med i operation kan simuleres ved hjelp av UNION-operatoren pluss det IKKE FINNES funksjon. Eksempel 4 er tilsvarende eksempel med venstre ytre sammenføyning (Eksempel 2).,

EKSEMPEL 4

Få full informasjon om alle ansatte, inkludert plassering av sin avdeling, for alle byer som er enten levende eller både levende og arbeidsplass for ansatte:

Den første SELECT-setning i union angir den naturlige bli med i tabellene employee_enh og avdeling med bli med kolonner bopel og sted. Dette SELECT-setning henter alle byer som er på samme tid den levende steder og arbeider steder av hver ansatt., Den andre SELECT-setning i union henter, i tillegg, alle rader fra employee_enh tabell som ikke samsvarer med tilstanden i de naturlige bli med.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *