MySQL LIIT – täielik õpetus
Mis on liit?
Liidud ühendavad mitme SELECT päringu tulemused konsolideeritud tulemuste komplektiks.
Ainus nõue selle toimimiseks on see, et veergude arv peaks olema sama kõigis kombineeritavates SELECT päringutes.
Oletame, et meil on kaks järgmist tabelit
Loome nüüd UNION-päringu, mis ühendab mõlemad tabelid, kasutades funktsiooni DISTINCT
SELECT column1, column2 FROM `table1` UNION DISTINCT SELECT column1,column2 FROM `table2`;
Siin eemaldatakse topeltread ja tagastatakse ainult kordumatud read.
Märge: MySQL kasutab UNION-i päringute täitmisel vaikimisi klauslit DISTINCT, kui midagi pole määratud.
Loome nüüd UNION-päringu, mis ühendab mõlemad tabelid, kasutades KÕIK
SELECT `column1`,` column1` FROM `table1` UNION ALL SELECT ` column1`,` column1` FROM `table2`;
Siin on kaasatud topeltread ja kuna me kasutame KÕIK.
Miks kasutada ametiühinguid?
Oletame, et teie andmebaasi kujunduses on viga ja te kasutate kahte erinevat tabelit, mis on mõeldud samal eesmärgil. Soovite need kaks tabelit üheks koondada, jättes samal ajal välja kõik topeltkirjed uude tabelisse hiilimast. Sellistel juhtudel võite kasutada UNION-i.
kokkuvõte
- UNION-käsku kasutatakse rohkem kui ühe SELECT-päringu tulemuste ühendamiseks üheks päringuks, mis sisaldab ridu kõigist valikupäringutest.
- Veergude ja andmetüüpide arv VALI avaldused peab olema sama, et UNION-käsk töötaks.
- Klauslit DISTINCT kasutatakse dubleerivate väärtuste kõrvaldamiseks UNION päringutulemite komplektist. MySQL kasutab UNION-i päringute täitmisel vaikimisi klauslit DISTINCT, kui midagi pole määratud.
- Klauslit KÕIK kasutatakse kõigi isegi UNION-päringu dubleerivate ridade tagastamiseks.
Praktilised näited kasutamisest MySQL töölaud
Meie myFlixDB võimaldab kombineerida
liikme_number ja täisnimed Liikmete tabelist
koos
movie_id ja pealkiri filmide tabelist
Saame kasutada järgmist päringut
SELECT `membership_number`,`full_names` FROM `members` UNION SELECT `movie_id`,`title` FROM `movies`;
Ülaltoodud skripti käivitamine MySQL töölaud myflixdb vastu annab meile järgmised allpool näidatud 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 |