Mikä on liitto?
Ammattiliitot yhdistävät useiden SELECT-kyselyjen tulokset yhdistetyksi tulosjoukoksi.
Ainoat vaatimukset, jotta tämä toimisi, on, että sarakkeiden lukumäärän on oltava sama kaikista SELECT-kyselyistä, jotka on yhdistettävä.
Oletetaan, että meillä on kaksi taulukkoa seuraavasti
Luodaan nyt UNION-kysely, joka yhdistää molemmat taulukot DISTINCT-toiminnolla
SELECT column1, column2 FROM `table1`UNION DISTINCTSELECT column1,column2 FROM `table2`;
Täällä kaksoiskappaleet poistetaan ja vain yksilölliset rivit palautetaan.
Huomaa: MySQL käyttää DISTINCT-lauseketta oletuksena, kun suoritetaan UNION-kyselyitä, jos mitään ei ole määritetty.
Luodaan nyt UNION-kysely, joka yhdistää molemmat taulukot ALL: lla
SELECT `column1`,` column1` FROM `table1`UNION ALLSELECT ` column1`,` column1` FROM `table2`;
Tässä mukana ovat kaksoisrivit ja koska käytämme KAIKKI.
Miksi käyttää ammattiliittoja
Oletetaan, että tietokannan suunnittelussa on virhe ja käytät kahta eri taulua, jotka on tarkoitettu samaan tarkoitukseen. Haluat yhdistää nämä kaksi taulukkoa yhdeksi ja jättää kaikki päällekkäiset tietueet hiipimättä uuteen taulukkoon. Voit käyttää UNIONia tällaisissa tapauksissa.
Yhteenveto
- UNION-komentoa käytetään yhdistämään useampi kuin yksi SELECT-kyselytulos yhdeksi kysely sisältää rivit kaikista valituista kyselyistä.
- SELECT-käskyjen sarakkeiden ja tietotyyppien määrän on oltava samat, jotta UNION-komento toimisi.
- DISTINCT-lauseketta käytetään poistamaan päällekkäiset arvot UNION-kyselyn tulosjoukosta. MySQL käyttää DISTINCT-lauseketta oletusarvona suoritettaessa UNION-kyselyitä, jos mitään ei ole määritetty.
- ALL-lauseketta käytetään palauttamaan kaikki kaksoisrivit UNION-kyselyssä.
Käytännön esimerkkejä MySQL-työpöydän käytöstä
MyFlixDB: n avulla voimme yhdistää
jäsenyys_numero ja täydelliset_nimet Jäsentaulukosta
kanssa
movie_id ja otsikko elokuvataulukosta
Voimme käyttää seuraavaa kyselyä
SELECT `membership_number`,`full_names` FROM `members`UNIONSELECT `movie_id`,`title` FROM `movies`;
Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan antaa meille seuraavat tulokset.
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 |