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

MySQL UNIONMySQL UNION

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.

Union-Distinct

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.

Union-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

Denní zpravodaj Guru99

Začněte svůj den s nejnovějšími a nejdůležitějšími zprávami o umělé inteligenci, které vám přinášíme právě teď.