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

MySQL PERSATUANMySQL PERSATUAN

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.

Persatuan-Berbeda

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.

Serikat-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