Kaj je zveza?
Sindikati združujejo rezultate iz več poizvedb SELECT v konsolidirani nabor rezultatov.
Edina zahteva, da to deluje, je, da mora biti število stolpcev enako pri vseh poizvedbah SELECT, ki jih je treba kombinirati.
Recimo, da imamo dve tabeli, kot sledi
Ustvarimo zdaj poizvedbo UNION, ki združuje obe tabeli s pomočjo DISTINCT
SELECT column1, column2 FROM `table1`UNION DISTINCTSELECT column1,column2 FROM `table2`;
Tu se podvojene vrstice odstranijo in vrnejo se samo edinstvene vrstice.
Opomba: MySQL pri izvajanju poizvedb UNION privzeto uporablja stavek DISTINCT, če ni določeno nič.
Ustvarimo zdaj poizvedbo UNION, ki združuje obe tabeli z uporabo ALL
SELECT `column1`,` column1` FROM `table1`UNION ALLSELECT ` column1`,` column1` FROM `table2`;
Tukaj so podvojene vrstice in ker uporabljamo VSE.
Zakaj uporabljati sindikate
Recimo, da je pri zasnovi vaše baze podatkov napaka in uporabljate dve različni tabeli, namenjeni za isti namen. Ti dve tabeli želite združiti v eno, pri tem pa izpustiti vse podvojene zapise, da se ne bi prikradli v novo tabelo. V takih primerih lahko uporabite UNION.
Povzetek
- Ukaz UNION se uporablja za združevanje več rezultatov poizvedbe SELECT v eno poizvedbo, ki vsebuje vrstice iz vseh izbranih poizvedb.
- Število stolpcev in podatkovnih vrst v stavkih SELECT mora biti enako, da lahko deluje ukaz UNION.
- Stavek DISTINCT se uporablja za odstranjevanje podvojenih vrednosti iz nabora rezultatov poizvedbe UNION. MySQL pri izvajanju poizvedb UNION uporablja privzeto stavek DISTINCT, če ni določeno nič.
- Stavek ALL se uporablja za vrnitev vseh celo podvojenih vrstic v poizvedbi UNION.
Praktični primeri uporabe delovne mize MySQL
V našem myFlixDB omogoča kombiniranje
member_number in full_names iz tabele Members
s
movie_id in naslov iz tabele filmov
Lahko uporabimo naslednjo poizvedbo
SELECT `membership_number`,`full_names` FROM `members`UNIONSELECT `movie_id`,`title` FROM `movies`;
Izvedba zgornjega skripta v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate, prikazane spodaj.
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 |