Pregled vrsta pridruživanja u SQL Serveru

Klauzula Pridruži se, ključna riječ JOIN spaja više tablica u jedan skup rezultata. Klauzula FROM mora imati sve tablice. Svaku tablicu odvaja zarezom GDJE gdje je obično uključena rečenica.

Možemo staviti u Boolov izraz koji vraća istinu ili laž, a ti se izrazi mogu odnositi na stupce u svim tablicama.

Vrste pridruživanja u SQL Serveru

Postoje različite vrste Spajanja

  • CROSS PRIDRUŽITE se
  • UNUTAR PRIDRUŽITE SE
  • Vanjski pridruži
  1. LEVO VANJU PRIDRUŽITE se
  2. PRAVO SPOLJITE PRIJAVITE se
  • POTPUNO PRIDRUŽITE SE
  • SAMO PRIDRUŽITE se

Razjasnimo detaljno svaku od ovih pridruživanja: -

1) Cross Cross

  • Ovo je najjednostavnija PRIJAVA
  • Vraća sve retke iz obje tablice
  • Klauzula NE GDJE
  • Ovo je ujedno i najmanje korisno
  • Vrlo je neučinkovit
  • Stvara kartezijanski proizvod
  • CROSS podrazumijeva ključnu riječ

Primjer

Dakle, svi iz prve tablice sa svakim dijelom podataka iz druge tablice bez ikakvog pokušaja bilo kakvog podudaranja, tako da je ovo stvar koju ne želite raditi.

Potražite stavku OD iz koje imate više tablica, a ne postoji klauzula GDJE.

2) Unutarnje spajanje

Izlaz upita:

Vaš početni i zadnji redak imaju koordinirajuće vrijednosti uključene u C2. Središnji redovi se obično ne sastaju. Posljednji krajnji rezultat daje sve vrijednosti kroz početni, kao i zadnji, a ne uključuju taj redak srednjeg dijela koji se ne podudara.

  • Ovo je najtipičnije PRIJAVITE se
  • To je naglasilo relacijsku prirodu baze podataka
  • Omogućuje nam da usporedimo vrijednost stupca u jednoj od tablica s vrijednosti stupca u drugoj od tablica.
  • Primarni ključ u jednoj od tablica, a strani ključ u jednoj od drugih tablica.

Primjer

Ovdje je p.person_id primarni ključ u tablici naših korisnika,

email_address_person_id je naš strani ključ u tablici adresa e-pošte.

Pogledajmo tablicu osoba

Imamo ta četiri reda. I onda sve podudaranja unutar tablice adresa e-pošte.

Dakle, na kraju bi trebalo dobiti troje ljudi jer imamo osobu Shannon koja nema adresu e-pošte

Izlaz upita:

Tako podatke dobivamo samo tamo gdje je podudaranje između dva stupca u svakoj od tablica

3) Vanjsko spajanje

  • UNUTARNJA JOIN se ne bavi NULL vrijednostima
  • OUTER JOIN funkcionira čak i kad nema rezultata u drugoj tablici.
  • NULL stupaca ako u drugoj tablici nema podudaranja
  • PUNO OUTER JOIN vrati sve pridružene redove
  • NULL ako nema podudaranja nijedne tablice

a) Spajanje s lijeve vanjske strane

Izlaz upita: Vi kao i početni, kao i zadnji redovi imaju koordinacijske vrijednosti uključene u C2. Središnji redovi se obično ne sastaju. Posljednji krajnji rezultat mogao bi zadržati sve redove prve tablice, ali zapravo će izostaviti nepodudarne retke kroz drugu tablicu.

  • Još jedna NULL vezana PRIDRUŽITE se
  • Vratit će se svi redovi s lijeve strane
  • NULL za nepodudarni stol s desne strane

Primjer

Izlaz upita:

Primjećujete da postoji jedan red u tablici Osoba koji nema vrijednosti u tablici adresa e-pošte. Tako će nam dati LIJEVI VANJSKI PRIDRUŽENI.

b) Pravo vanjsko spajanje

Izlaz upita:

Vi kao i početni, kao i zadnji redovi imaju koordinacijske vrijednosti uključene u C2. Središnji redovi se obično ne sastaju. Posljednji krajnji rezultat mogao bi zadržati sve redove druge tablice, ali zapravo će izostaviti nepodudarne retke kroz prvu tablicu.

  • Nasuprot LIJEVOM VANJU PRIDRUŽITE
  • Vratit će se svi redovi s desne strane
  • NULL za nepodudarni stol s lijeve strane

Primjer Izlaz upita:

Dobivamo tri rezultata. Evo rezultata RIGHT OUTER JOIN gdje u tablici adresa imamo redak iz tablice adresa e-pošte koji nema odgovarajući redak.

4) Potpuno spajanje s vanjske strane

Primjer

Izlaz upita:

Moramo kombinirati rezultat LIJEVE VANJSKE PRIDRUŽIVANJA i PRAVE PRIDRUŽITE SE

5) Samostalno spajanje

  • SELF nije ključna riječ. To je samo ta ideja koju možete napraviti na sebi
  • Neobično, ali ponekad korisno
  • Nema posebne sintakse
  • Ista tablica s lijeve i desne strane pridruži se
  • Korisno kada tablica sadrži hijerarhijske podatke

Primjer

ODABERI *

OD narudžbe

PRIDRUŽITE se pretplatama

ON nalozi.subscription_id = subscriptions.subscription_id;

Dobivamo tablicu narudžbi i tablicu pretplata i pridružite se tablici SELECT sve stupce.

Da biste dobili rezultat.

Zaključak:

Spajanja su način na koji stvarno stvaramo relacijski model. Relacijski model podrazumijeva razdvajanje podataka, normalizaciju u više tablica, ali ponovno uspostavljanje tih podataka kada želimo vidjeti te odnose. A različite vrste Spajanja omogućuju nam to na nešto drugačije načine.

Preporučeni članci

Ovo je vodič za vrste spajanja na SQL poslužitelju. Ovdje ćemo raspraviti pregled i vrste spajanja u SQL-u sa njihovim primjerima. Možete i proći naše druge predložene članke da biste saznali više -

  1. Što je SQL Server?
  2. Karijere na SQL Serveru
  3. PL SQL obuka
  4. MySQL Operators
  5. Top 6 vrsta pridruživanja u MySQL-u s primjerima

Kategorija: