SQL nam daje operator UNION koji nam omogućuje kombiniranje skupova rezultata dviju ili više naredbi SELECT u jedan skup rezultata. Postoje tri glavne vrste UNION operatora u SQL-u: UNION, UNION ALL i UNION DISTINCT.
Ovaj vodič istražuje ove tri vrste UNIONA i pruža stvarne i praktične primjere rada s njima.
BILJEŠKA: U ovom primjeru koristit ćemo oglednu Sakila bazu podataka u svrhu demonstracije. Provjerite jeste li ga instalirali prije izvršavanja ovih naredbi. Možete pogledati naš vodič o tome da biste saznali više.
SQL UNION operator
Kao što je spomenuto, operator UNION omogućuje nam kombiniranje skupa rezultata dviju ili više naredbi odabira i uklanjanje dupliciranih vrijednosti. Sintaksa operatora UNION je sljedeća:
SELECT stupac1, stupac2, ...
IZ tablice1
UNIJA
SELECT stupac1, stupac2, ...
IZ tablice2;
U sintaksi prethodnog primjera koristimo naredbe SELECT za dohvaćanje podataka iz navedenih tablica. Operator UNION zatim kombinira dva skupa rezultata u jedan skup. Uzmimo primjer kako to učiniti pomoću tablice aktera koja je definirana u bazi podataka Sakila.
Razmotrite sljedeći primjer upita koji dohvaća ime i prezime aktera iz tablice aktera i tablice korisnika:
SELECT ime, prezimeOD glumca
UNIJA
SELECT ime, prezime
OD kupca; SELECT ime, prezime
OD glumca
UNIJA
SELECT ime, prezime
OD kupca;
Prethodni upit ispravlja imena i prezimena iz tablica aktera i kupaca i vraća vrijednosti kao jedan rezultat.
Primjer izlaza je sljedeći:
SQL UNION ALL operator
Za razliku od operatora UNION koji uklanja duplicirane vrijednosti iz skupa rezultata, operator UNION vraća sve retke tablice uključujući duplikate.
Sintaksa je sljedeća:
SELECT stupac1, stupac2, ...IZ tablice1
UNIJA SVE
SELECT stupac1, stupac2, ...
IZ tablice2;
Sljedeći primjer odabire ime i prezime iz tablica glumaca i kupaca u bazi podataka Sakila:
OD glumca
UNIJA SVE
SELECT ime, prezime
OD kupca;
Primjer izlaza je sljedeći:
SQL UNION DISTINCT operator
Druga vrsta operatora unije je UNION DISTINCT. Ovaj je operator jednostavno duplikat operatora UNION koji izvodi sličnu radnju.
Sintaksa je sljedeća:
SELECT stupac1, stupac2, ...IZ tablice1
UNIJA DISTINKT
SELECT stupac1, stupac2, ...
IZ tablice2;
Izjave SELECT dohvaćaju podatke iz navedenih tablica, a operator UNION DISTINCT kombinira skupove rezultata u jedan skup rezultata koji uključuje jedinstvene retke.
U primjeru Sakila baze podataka možemo pokrenuti sljedeću naredbu:
SELECT ime, prezimeOD glumca
UNIJA DISTINKT
SELECT ime, prezime
OD kupca;
Ovo bi trebalo vratiti sličan rezultat kao operator UNION.
Zaključak
Naučili smo kako raditi s različitim vrstama UNIONA u SQL-u. Operator UNION kombinira skup rezultata dvaju ili više naredbi odabira i uklanja dvostruke zapise. UNION ALL izvodi sličnu radnju, ali uključuje sve duplicirane retke. Konačno, UNION DISTINCT identičan je izvornom UNION operatoru.