Mis on liit?
Ametiühingud ühendavad mitme SELECT päringu tulemused konsolideeritud tulemuste komplektiks.
Ainsad nõuded selle toimimiseks on see, et veergude arv peaks olema sama kõigi ühendatavate SELECT-päringute puhul.
Oletame, et meil on kaks järgmist tabelit
Loome nüüd UNIONi päringu, mis ühendab mõlemad tabelid DISTINCT abil
SELECT column1, column2 FROM `table1`UNION DISTINCTSELECT column1,column2 FROM `table2`;
Siin eemaldatakse duplikaatread ja tagastatakse ainult unikaalsed read.
Märkus. Kui midagi pole määratud, kasutab MySQL vaikimisi UNIST-päringute täitmisel klauslit DISTINCT.
Loome nüüd UNIONi päringu, mis ühendab mõlemad tabelid KÕIK abil
SELECT `column1`,` column1` FROM `table1`UNION ALLSELECT ` column1`,` column1` FROM `table2`;
Siin on duplikaatread lisatud ja kuna me kasutame kõiki.
Miks kasutada ametiühinguid
Oletame, et teie andmebaasi kujunduses on viga ja kasutate kahte erinevat tabelit, mis on mõeldud samaks otstarbeks. Soovite koondada need kaks tabelit ühte, jättes samas dubleerimata kirjed uude tabelisse. Sellistel juhtudel saate kasutada UNION-i.
Kokkuvõte
- UNION-käsku kasutatakse mitme SELECT-päringu tulemuse ühendamiseks ühte päringusse, mis sisaldab ridu kõigist valitud päringutest.
- SELECT-käskude veergude ja andmetüüpide arv peab käsu UNION toimimiseks olema sama.
- DISTINCT-klauslit kasutatakse UNIONi päringutulemite komplekti duplikaatide väärtuste kõrvaldamiseks. MySQL kasutab UNIONi päringute täitmisel vaikimisi klauslit DISTINCT, kui midagi pole täpsustatud.
- Klauslit ALL kasutatakse kõigi UNIONi päringu isegi duplikaatridade tagastamiseks.
Praktilised näited MySQL-i töölaua kasutamisest
Meie myFlixDB võimaldab kombineerida
liikmelisuse_number ja täisnimed liikmete tabelist
koos
movie_id ja pealkiri filmitabelist
Saame kasutada järgmist päringut
SELECT `membership_number`,`full_names` FROM `members`UNIONSELECT `movie_id`,`title` FROM `movies`;
Ülaltoodud skripti käivitamine MySQL-i töölaual myflixdb vastu annab meile järgmised tulemused.
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 |