MySQL UNION – Kompletní návod
Co je to unie?
Sjednocení kombinuje výsledky z více dotazů SELECT do konsolidované sady výsledků.
Jediným požadavkem, aby to fungovalo, je, že počet sloupců by měl být stejný jako u všech SELECT dotazů, které je třeba kombinovat.
Předpokládejme, že máme dvě následující tabulky
Pojďme nyní vytvořit dotaz UNION, který spojí obě tabulky pomocí DISTINCT
SELECT column1, column2 FROM `table1` UNION DISTINCT SELECT column1,column2 FROM `table2`;
Zde se odstraní duplicitní řádky a vrátí se pouze jedinečné řádky.
Poznámka: MySQL používá klauzuli DISTINCT jako výchozí při provádění dotazů UNION, pokud není nic zadáno.
Pojďme nyní vytvořit dotaz UNION, který spojí obě tabulky pomocí ALL
SELECT `column1`,` column1` FROM `table1` UNION ALL SELECT ` column1`,` column1` FROM `table2`;
Zde jsou zahrnuty duplicitní řádky a protože používáme ALL.
Proč používat odbory?
Předpokládejme, že ve vašem návrhu databáze je chyba a používáte dvě různé tabulky určené pro stejný účel. Chcete tyto dvě tabulky sloučit do jedné a zároveň vynechat duplicitní záznamy z plížení do nové tabulky. V takových případech můžete použít UNION.
Shrnutí
- Příkaz UNION se používá ke spojení více než jednoho výsledku dotazu SELECT do jediného dotazu obsahujícího řádky ze všech výběrových dotazů.
- Počet sloupců a datových typů v příkazy SELECT musí být stejné, aby příkaz UNION fungoval.
- Klauzule DISTINCT se používá k odstranění duplicitních hodnot ze sady výsledků dotazu UNION. MySQL používá klauzuli DISTINCT jako výchozí při provádění dotazů UNION, pokud není nic zadáno.
- Klauzule ALL se používá k vrácení všech i duplicitních řádků v dotazu UNION.
Praktické příklady použití MySQL ponk
V naší myFlixDB umožňuje kombinovat
členské_číslo a celá_jména z tabulky Členové
s
movie_id a title z tabulky filmů
Můžeme použít následující dotaz
SELECT `membership_number`,`full_names` FROM `members` UNION SELECT `movie_id`,`title` FROM `movies`;
Spuštění výše uvedeného skriptu v MySQL ponk proti myflixdb nám dává následující výsledky uvedené níže.
membership_number | full_names |
---|---|
1 | Janet Jones |
2 | Janet Smith Jones |
3 | Robert Phil |
4 | Gloria Williams |
5 | Leonard Hofstadter |
6 | Sheldon Cooper |
7 | Rajesh Koothrappali |
8 | Leslie Winkle |
9 | Howard Wolowitz |
16 | 67% Guilty |
6 | Angels and Demons |
4 | Code Name Black |
5 | Daddy's Little Girls |
7 | Davinci Code |
2 | Forgetting Sarah Marshal |
9 | Honey mooners |
19 | movie 3 |
1 | Pirates of the Caribean 4 |
18 | sample movie |
17 | The Great Dictator |
3 | X-Men |