MySQL UNION - Tutorial Lengkap

Anonim

Apakah serikat pekerja itu?

Serikat pekerja menggabungkan hasil dari beberapa kueri PILIH 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 memiliki dua tabel sebagai berikut

Sekarang mari buat kueri UNION untuk menggabungkan kedua tabel menggunakan DISTINCT

SELECT column1, column2 FROM `table1`UNION DISTINCTSELECT 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 buat kueri UNION untuk menggabungkan kedua tabel menggunakan ALL

SELECT `column1`,` column1` FROM `table1`UNION ALLSELECT ` 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 dua tabel ini menjadi satu sambil menghilangkan rekaman duplikat dari merayap ke dalam tabel baru. Anda dapat menggunakan UNION dalam kasus seperti itu.

Ringkasan

  • Perintah UNION digunakan untuk menggabungkan lebih dari satu hasil kueri SELECT ke dalam satu kueri berisi baris dari semua kueri pemilihan.
  • Jumlah kolom dan tipe data dalam pernyataan SELECT harus sama agar perintah UNION 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 bahkan baris duplikat dalam kueri UNION.

Contoh praktis menggunakan meja kerja MySQL

Di myFlixDB, mari kita gabungkan

membership_number dan full_names dari tabel Anggota

dengan

movie_id dan judul dari tabel film

Kita bisa menggunakan query berikut

SELECT `membership_number`,`full_names` FROM `members`UNIONSELECT `movie_id`,`title` FROM `movies`;

Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil berikut 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