U ovom vodiču naučit ćemo kako koristiti klauzulu SQL UNION za kombiniranje rezultata iz dvije ili više naredbi SELECT u jedan skup rezultata.
Sljedeća ilustracija prikazuje pregled SQL UNION upita:
Sintaksa SQL UNION
Sljedeće prikazuje sintaksu za kombiniranje dviju izjava odabira pomoću klauzule UNION:
ODABERI
stupac_1,
stupac_2,
...kol_N
IZ
tbl_1
UNIJA
ODABERI
stupac_1,
stupac_2,
...kol_N
IZ
tbl_2;
Prije izvođenja upita unije moraju biti ispunjeni sljedeći zahtjevi:
- Broj stupaca u svakoj naredbi odabira mora biti identičan.
- Stupac na istoj poziciji u svakoj izjavi odabira mora biti sličnog tipa podataka.
- Redoslijed stupaca mora biti točan u svim izjavama odabira.
Ilustrirajmo kako možemo koristiti UNION upit sa stvarnom tablicom.
Stol 1:
Sljedeće prikazuje stupce i podatke u prvoj tablici:
id|naziv_poslužitelja |adresa |instalirana_verzija|
--+-------------+--------------+------------------+
1|SQL Server |localhost:1433|15.0 |
2|Elasticsearch|localhost:9200|8.4.3 |
3|Redis |localhost:6379|6.0 |
4|PostgreSQL |localhost:5432|14.5 |
Tablica 2:
Struktura i zapisi druge tablice prikazani su u nastavku:
id|alat |verzija|licenciran |--+--------------------------+-------+---------- +
1|SQL Server Management Studio|18.0 |komercijalni|
2|Kibana |7.17.7 |besplatno |
3|DBabar |22.2 |Poduzeće|
4|DataGrip |2022.2 |Komercijalno|
SQL UNION tablice
Možemo izvesti operaciju UNION na vrijednostima obje tablice kao što je prikazano u sljedećem upitu:
ODABERISERVER_NAME,
INSTALLED_VERSION
IZ
STACK_MAPPING
UNIJA
ODABERI
ALAT,
VERZIJA
IZ
PRIKLJUČAK;
Ovo bi trebalo kombinirati upite i vratiti tablicu na sljedeći način:
server_name |instalirana_verzija|----------------------------+-----------------+
SQL Server |15.0 |
Elastično pretraživanje |8.4.3 |
Redis |6.0 |
PostgreSQL |14.5 |
SQL Server Management Studio|18.0 |
Kibana |7.17.7 |
DDabar |22.2 |
DataGrip |2022.2 |
Zaključak
Ovaj članak pruža osnove rada s klauzulom UNION u SQL-u za kombiniranje rezultata dviju ili više naredbi SELECT. Slobodno provjerite ostale vodiče za više.