PostgreSQL Vrste spajanja: Unutarnje, Vanjsko, Lijevo, Desno
⚡ Pametni sažetak
PostgreSQL Spojevi dohvaćaju i kombiniraju retke iz dvije ili više tablica pomoću zajedničkog ključa, a uključuju unutarnje spojeve kao što su theta, EQUI i prirodni, plus vanjske spojeve koji pokrivaju lijeve, desne i pune rezultate.

U čemu su spojevi PostgreSQL?
PostgreSQL Pridružuje koriste se za dohvaćanje podataka iz više tablica. Pomoću spajanja (Join) možemo kombinirati naredbe SELECT i JOIN u jednu naredbu. Naredbi se dodaje uvjet JOIN i vraćaju se svi retci koji zadovoljavaju uvjete. Vrijednosti iz različitih tablica kombiniraju se na temelju zajedničkih stupaca. Zajednički stupac je uglavnom primarni ključ u prvoj tablici i strani ključ druge tablice.
PostgreSQL Vrste spajanja
Postoje dvije vrste spajanja PostgreSQL:
- Unutarnji spojevi
- Vanjski spojevi
PostgreSQL Unutarnje pridruživanje
Postoje 3 vrste unutarnjih spojeva PostgreSQL:
- Theta spoj
- Prirodno spajanje
- Pridružite se EQUI
Theta Pridružite se
Theta spajanje omogućuje spajanje dviju tablica na temelju uvjeta koji predstavlja theta. Theta spojevi mogu raditi sa svim operatorima usporedbe. U većini slučajeva, theta spajanje se naziva unutarnjim spajanjem.
Theta spajanje je najosnovniji tip JOIN-a. Vratit će sve retke iz tablica u kojima je JOIN uvjet zadovoljen.
Sintaksa:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Razmotrite sljedeće tablice Demo baze podataka:
Rezervirati:
Cijena:
Želimo vidjeti naziv svake knjige i odgovarajuću cijenu. Možemo pokrenuti sljedeću naredbu:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Ovo će vratiti sljedeće:
Samo su 3 retka zadovoljila uvjet spajanja.
EQUI Pridružite se
EQUI spajanje pruža nam način spajanja dviju tablica na temelju odnosa primarni ključ/strani ključ. Na primjer:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Ovo će vratiti sljedeće:
Zapisi su vraćeni iz obje tablice na temelju zajedničkih stupaca, odnosno stupca id.
Prirodni spoj
Ova vrsta pridruživanja nam daje još jedan način pisanja EQUI pridruživanja. Možemo poboljšati naš prethodni primjer dodavanjem ključne riječi NATURAL kao što je prikazano u nastavku:
SELECT * FROM Book NATURAL JOIN Price;
Ovo će vratiti sljedeće:
Vraćen je samo jedan ID stupac. NATURAL JOIN je mogao primijetiti da je id stupac zajednički u dvije tablice. Samo je jedan vraćen.
PostgreSQL Vanjsko pridruživanje
Postoje 3 vrste vanjskih spojeva PostgreSQL:
- Lijevi vanjski spoj
- Desni vanjski spoj
- Potpuno vanjsko pridruživanje
PostgreSQL Lijevi vanjski spoj
LEFT OUTER JOIN će vratiti sve retke u tablici na lijevoj strani i samo retke u tablici s desne strane gdje je uvjet spajanja zadovoljen.
Sintaksa:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Moramo vidjeti naziv svake knjige i odgovarajuću cijenu. Možemo pokrenuti sljedeću naredbu:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Ovo vraća sljedeće:
Sva 4 retka u tablici Knjiga su vraćena. Samo 3 retka iz tablice cijena ispunjavaju uvjet spajanja. Stoga su vraćeni. Posljednja knjiga nema odgovarajuću cjenovnu vrijednost.
PostgreSQL Desni vanjski spoj
RIGHT OUTER JOIN vraća sve retke u tablici s desne strane i retke u tablici s lijeve strane gdje je uvjet spajanja zadovoljen.
Sintaksa:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Na primjer:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Ovo vraća sljedeće:
Vraćeni su svi retci u tablici Cijena. Vraćeni su samo retci u tablici Knjiga koji su zadovoljili uvjet spajanja. Treći redak nema vrijednost za ime jer nije pronađeno podudaranje.
Potpuno vanjsko pridruživanje PostgreSQL
Ova vrsta JOIN će vratiti sve retke u tablici na lijevoj strani i sve retke u tablici na desnoj strani s nulama gdje uvjet spajanja nije zadovoljen.
Sintaksa:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Na primjer:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Ovo vraća sljedeće:
Svi retci iz svih tablica su vraćeni, s nulama gdje nije pronađeno podudaranje.
Koristeći pgAdmin
Gore navedeni zadaci mogu se izvršiti u pgAdminu na sljedeći način. Sljedeći odjeljci korak po korak opisuju svaku vrstu spajanja.
pgAdmin Unutarnje pridruživanje
U nastavku slijedi prikaz kako pokrenuti svaku varijantu unutarnjeg spajanja u pgAdminu.
Kako koristiti Theta Pridružite se PostgreSQL koristeći pgAdmin
U nastavku su navedeni koraci za korištenje Theta Join-a PostgreSQL koristeći pgAdmin:
Korak 1) Prijavite se na svoj pgAdmin račun
Otvorite pgAdmin i prijavite se koristeći svoje vjerodajnice
Korak 2) Stvorite demo bazu podataka
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Upišite upit
Unesite upit u nastavku u uređivač upita:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Korak 4) Izvršite upit
Pritisnite gumb Izvrši
Trebao bi vratiti sljedeće:
EQUI Pridružite se
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Prirodni spoj
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT * FROM Book NATURAL JOIN Price;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
pgAdmin Jednostavno unutarnje spajanje
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
pgAdmin vanjsko spajanje
Zatim pokrenite tri varijante vanjskog spajanja u pgAdminu slijedeći dolje navedene korake.
Lijevi vanjski spoj
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Desni vanjski spoj
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Potpuno vanjsko pridruživanje
Korak 1) Prijavite se na svoj pgAdmin račun.
Korak 2)
- Na navigacijskoj traci s lijeve strane kliknite Databases.
- Pritisnite Demo.
Korak 3) Unesite upit u uređivač upita:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Korak 4) Pritisnite gumb Izvrši.
Trebao bi vratiti sljedeće:
Preuzmite bazu podataka korištenu u ovom vodiču





























