UNION di SQL

Menumpuk hasil dua query ke bawah (bukan ke samping seperti JOIN). UNION membuang duplikat, UNION ALL tidak.

Penjelasan sederhana

UNION menumpuk hasil dua query ke bawah, seperti menempel data dari sheet kedua di bawah data sheet pertama. Ini berbeda dari JOIN yang menggabungkan ke samping.

UNION otomatis membuang baris yang kembar. Kalau ingin semua baris tetap ada (termasuk yang kembar), pakai UNION ALL, yang juga lebih cepat.

Syaratnya, kedua query harus punya jumlah kolom yang sama dan tipe data yang serasi.

Sintaks

SELECT kolom FROM tabel_a
UNION [ALL]
SELECT kolom FROM tabel_b;
BagianKeterangan
UNIONMenggabungkan lalu menghapus baris kembar.
UNION ALLMenggabungkan apa adanya. Lebih cepat.
syaratJumlah kolom dan tipe datanya harus sama di kedua query.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh UNION

Data contoh: karyawan, departemen

Tabel karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NULL
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NULL
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NULL
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NULL Medan 5500000 2024-04-02 NULL

Tabel departemen

idnama_deptlokasi
1 Keuangan Jakarta
2 Marketing Jakarta
3 IT Bandung
4 Legal Surabaya
query.sql
SELECT kota FROM karyawan
UNION
SELECT lokasi FROM departemen
ORDER BY kota;
>_ Jalankan & ubah query ini di browser

Hasil 4 baris

kota
Bandung
Jakarta
Medan
Surabaya

Daftar semua kota dari dua tabel, masing-masing muncul sekali.

Cara kerjanya, langkah demi langkah

  1. Query pertama mengambil kota dari 8 karyawan: Bandung, Jakarta, Surabaya, Medan, dengan beberapa yang berulang.
  2. Query kedua mengambil lokasi dari 4 departemen: Jakarta, Jakarta, Bandung, Surabaya.
  3. Kedua hasil ditumpuk, lalu baris yang kembar dibuang, tersisa 4 kota.
  4. ORDER BY kota: diurutkan sesuai abjad. Judul kolomnya mengikuti query pertama, yaitu kota.

Dipakai untuk apa di kantor?

  • Menggabungkan data penjualan dari tabel tahun 2025 dan tabel tahun 2026.
  • Menggabungkan daftar email pelanggan dan daftar email pendaftar newsletter.

Kesalahan yang sering terjadi

  • Jumlah kolom di kedua query berbeda, sehingga database menolak.
  • Memakai UNION padahal butuh semua baris, misalnya untuk menjumlahkan transaksi. Transaksi yang kebetulan sama persis ikut terbuang. Pakai UNION ALL.
Progres bab Gabung Tabel (JOIN) 0/7 dipelajari
Lanjut: CONCAT

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class