V tomto tutoriálu se naučíme, jak použít klauzuli SQL UNION ke spojení výsledku ze dvou nebo více příkazů SELECT do jediné sady výsledků.
Následující obrázek ukazuje přehled dotazu SQL UNION:
Syntaxe SQL UNION
Následující text ukazuje syntaxi pro kombinaci dvou příkazů select pomocí klauzule UNION:
VYBRAT
sloupec_1,
sloupec_2,
...sloupec_N
Z
tbl_1
UNIE
VYBRAT
sloupec_1,
sloupec_2,
...sloupec_N
Z
tbl_2;
Před provedením sjednocovacího dotazu musí být splněny následující požadavky:
- Počet sloupců v každém příkazu select musí být shodný.
- Sloupec na stejné pozici v každém příkazu select musí mít podobný datový typ.
- Pořadí sloupců musí být správné ve všech vybraných příkazech.
Ukažme si, jak můžeme použít dotaz UNION se skutečnou tabulkou.
Stůl 1:
Následující tabulka zobrazuje sloupce a data v první tabulce:
id|název_serveru |adresa |instalovaná_verze|
--+-------------+--------------+-----------------+
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 |
Tabulka 2:
Struktura a záznamy druhé tabulky jsou následující:
id|tool |verze|licencováno |--+----------------------------+-------+----------- +
1|SQL Server Management Studio|18.0 |komerční|
2|Kibana |17.7.7 |zdarma |
3|DBeaver |22.2 |Podnik|
4|DataGrip |2022.2 |Komerční|
SQL UNION tabulky
Můžeme provést operaci UNION na hodnotách obou tabulek, jak ukazuje následující dotaz:
VYBRATSERVER_NAME,
INSTALLED_VERSION
Z
STACK_MAPPING
UNIE
VYBRAT
NÁSTROJ,
VERZE
Z
KONEKTOR;
To by mělo zkombinovat dotazy a vrátit tabulku takto:
název_serveru |instalovaná_verze|----------------------------+-----------------+
SQL Server |15.0 |
Elasticsearch |8.4.3 |
Redis |6.0 |
PostgreSQL |14.5 |
SQL Server Management Studio|18.0 |
Kibana |17.7. |
DBeaver |22.2 |
DataGrip |2022.2 |
Závěr
Tento článek poskytuje základy práce s klauzulí UNION v SQL za účelem kombinace výsledků dvou nebo více příkazů SELECT. Neváhejte a podívejte se na další tutoriály.