Memahami Penggunaan UNION dengan ORDER BY dalam MySQL

UNION dengan ORDER BY dapat digunakan untuk menggabungkan dan mengurutkan data dari beberapa query dalam MySQL

Handoyo Saputra | 26 Oktober 2023

MySQL

Dalam dunia basis data, MySQL adalah salah satu sistem manajemen basis data relasional yang populer. MySQL memiliki banyak perintah SQL yang kuat yang memungkinkan Anda untuk mengambil, mengubah, dan mengelola data dalam tabel.

Salah satu perintah yang berguna adalah UNION, yang digunakan untuk menggabungkan hasil dari beberapa query menjadi satu set data tunggal.

Perintah UNION adalah alat yang memungkinkan kita untuk menggabungkan hasil dari dua atau lebih query menjadi satu set data tunggal. Query-query ini harus menghasilkan hasil dengan jumlah kolom yang sama dan tipe data yang kompatibel.

UNION secara otomatis menghilangkan duplikat, yang berarti jika ada baris yang sama dalam dua hasil query, hanya satu baris yang akan dimasukkan dalam hasil akhir. Sebagai contoh, pertimbangkan kasus berikut:

SELECT kolom1 FROM tabel1
UNION
SELECT kolom1 FROM tabel2;

Dalam contoh di atas, kita mengambil data dari kolom1 dalam tabel1 dan menggabungkannya dengan data dari kolom1 dalam tabel2. Hasil akhir akan berisi semua nilai yang unik dari kedua tabel ini.

UNION vs. UNION ALL

Dalam penggunaan UNION, hasil akhir hanya akan mencakup nilai yang unik, sedangkan UNION ALL akan mencakup semua baris, termasuk duplikat. Pilihan antara keduanya tergantung pada kebutuhan Anda.

Menggabungkan UNION dengan ORDER BY

Ketika Anda ingin mengurutkan hasil akhir yang diperoleh dari UNION, Anda dapat menggunakan perintah ORDER BY. Ini memungkinkan Anda untuk mengurutkan data hasil UNION sesuai dengan kolom tertentu.

Penting untuk diingat bahwa penggunaan ORDER BY pada UNION akan mempengaruhi seluruh hasil gabungan, bukan hanya satu query. Berikut adalah contoh penggunaan UNION dengan ORDER BY:

SELECT kolom1 FROM tabel1
UNION
SELECT kolom1 FROM tabel2
ORDER BY kolom1 ASC;

Dalam contoh ini, kita mengambil data dari kolom1 dalam tabel1 dan menggabungkannya dengan data dari kolom1 dalam tabel2, lalu kita mengurutkan hasil akhir berdasarkan kolom1. Hasil akhir akan mencakup semua nilai unik dari kedua tabel dan akan diurutkan berdasarkan kolom1.

Anda dapat menggantikan kolom1 dengan nama kolom yang sesuai yang ingin Anda gunakan untuk pengurutan, dan Anda juga dapat menggunakan ASC (ascending) atau DESC (descending) untuk mengontrol arah pengurutan.

Perhatikan bahwa ORDER BY selalu diletakkkan setelah UNION. Jika ingin mengurutkan data sebelum data tersebut digabungkan, maka kita bisa menggunakan Sub Query.

ORDER BY sebelum UNION

Ada kalanya kita perlu mengurutkan data sebelum melakukan UNION. Ada 2 cara yang dapat kita lakukan, yaitu dengan menggunakan Sub Query atau menggunakan MAX/MIN.

Berikut contoh penggunaan Sub Query untuk mengurutkan data sebelum menggunakan UNION:

SELECT * FROM
(SELECT kolom1 FROM tabel1 ORDER BY kolom1 ASC LIMIT 1) AS data1
UNION
SELECT * FROM
(SELECT kolom1 FROM tabel2 ORDER BY kolom1 DESC LIMIT 1) AS data2

Berikut contoh penggunaan MAX/MIN untuk mengurutkan data sebelum menggunakan UNION:

SELECT MAX(kolom1) FROM tabel1
UNION
SELECT MIN(kolom1) FROM tabel2

UNION dengan ORDER BY dapat digunakan untuk menggabungkan dan mengurutkan data dari beberapa query dalam MySQL. Ini memberi Anda kontrol lebih besar atas hasil akhir yang Anda dapatkan dari penggabungan data.

Normalnya, ORDER BY dilakukan setelah menggabungkan data dengan UNION. Namun kita dapat menggunakan Sub Query datau MAX/MIN untuk mengurutkan data sebelum data tersebut kita gabungkan.

Ingatlah untuk memahami perbedaan antara UNION dan UNION ALL serta cara menggabungkannya dengan ORDER BY sesuai dengan kebutuhan Anda. Semoga artikel ini membantu Anda memahami konsep tersebut dalam basis data MySQL.

TagsCoding

Artikel Lainnya

Artikel Terbaru