MySQL UNION – Tutorial Lengkap
Apa itu Persatuan?
Serikat pekerja menggabungkan hasil dari beberapa kueri SELECT ke dalam kumpulan hasil yang terkonsolidasi.
Satu-satunya persyaratan agar ini berfungsi adalah jumlah kolom harus sama dari semua kueri SELECT yang perlu digabungkan.
Misalkan kita mempunyai dua tabel sebagai berikut
Sekarang mari kita buat kueri UNION untuk menggabungkan kedua tabel menggunakan DISTINCT
SELECT column1, column2 FROM `table1` UNION DISTINCT SELECT column1,column2 FROM `table2`;
Di sini baris duplikat dihapus dan hanya baris unik yang dikembalikan.
Catatan: MySQL menggunakan klausa DISTINCT sebagai default saat menjalankan kueri UNION jika tidak ada yang ditentukan.
Sekarang mari kita buat kueri UNION untuk menggabungkan kedua tabel menggunakan ALL
SELECT `column1`,` column1` FROM `table1` UNION ALL SELECT ` column1`,` column1` FROM `table2`;
Di sini baris duplikat disertakan dan karena kami menggunakan SEMUA.
Mengapa menggunakan Serikat Pekerja?
Misalkan ada cacat dalam desain database Anda dan Anda menggunakan dua tabel berbeda yang dimaksudkan untuk tujuan yang sama. Anda ingin menggabungkan kedua tabel ini menjadi satu sambil menghilangkan rekaman duplikat apa pun agar tidak masuk ke tabel baru. Anda dapat menggunakan UNION dalam kasus seperti itu.
Ringkasan
- Perintah UNION digunakan untuk menggabungkan lebih dari satu hasil kueri SELECT menjadi satu kueri yang berisi baris dari semua kueri pemilihan.
- Jumlah kolom dan tipe data di pernyataan PILIH harus sama agar perintah UNION dapat berfungsi.
- Klausa DISTINCT digunakan untuk menghilangkan nilai duplikat dari kumpulan hasil kueri UNION. MySQL menggunakan klausa DISTINCT sebagai default saat menjalankan kueri UNION jika tidak ada yang ditentukan.
- Klausa ALL digunakan untuk mengembalikan semua baris duplikat dalam kueri UNION.
Contoh praktis menggunakan MySQL meja kerja
Di myFlixDB kami, mari gabungkan
nomor_keanggotaan dan nama_lengkap dari tabel Anggota
dengan
movie_id dan judul dari tabel film
Kita dapat menggunakan query berikut
SELECT `membership_number`,`full_names` FROM `members` UNION SELECT `movie_id`,`title` FROM `movies`;
Menjalankan skrip di atas dalam MySQL meja kerja terhadap myflixdb memberi kita hasil yang ditunjukkan di bawah ini.
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 |