Penggunaan gabungan di mysql

Jika Anda telah memahami fungsi join pada database relasional untuk menghubungkan berbagai tabel, maka artikel berikut akan menjelaskan dan menunjukkan contoh penggunaan variasi join pada MySQL versi 5. 0. JOIN sendiri merupakan konstruk bahasa yang tidak dapat berdiri sendiri, biasanya berupa klausa di bagian referensi tabel pernyataan SELECT, UPDATE atau DELETE

Jenis-jenis JOIN yang akan dibahas adalah:

  • GABUNG DALAM
  • LINTAS BERGABUNG
  • GABUNG LUAR
  • GABUNG LURUS

Tiga tabel yang akan kita gunakan dari database adalah ms_branch, ms_city dan ms_provinsi dengan relasi yang ditunjukkan pada gambar berikut

Penggunaan gabungan di mysql

Keterangan. Hubungan antara tabel ms_branch, ms_city dan ms_provinsi

GABUNG DALAM

INNER JOIN adalah jenis join yang akan kita bahas terlebih dahulu. Tipe join ini akan mengambil semua baris dari tabel asal dan tabel tujuan dengan kondisi key value saja - jika ada, dan jika tidak maka baris tidak akan muncul.  

Jika tidak ada kondisi kunci terkait antar tabel, maka semua baris dari kedua tabel digabungkan

Sintaks INNER JOIN adalah sebagai berikut

table_reference [INNER] JOIN table_factor [join_condition]

Terlihat bahwa keyword INNER boleh digunakan secara eksplisit atau tidak. Jika tidak digunakan maka konstruksi JOIN tanpa keyword lain dianggap sebagai INNER JOIN.


INNER JOIN Antara Tabel dengan Kondisi ("ms_branch" dan "ms_city" dengan kunci "code_city")

SELECT * FROM ms_cabang INNER JOIN ms_kota ON ms_cabang.kode_kota = ms_kota.kode_kota

Hasilnya tampak seperti gambar berikut. Disini tabel source ms_branch (kiri) cari referensi baris lain dari tabel ms_city (kanan) dengan syarat nilai kode kota antara kedua tabel sama. Kondisi ini menggunakan kata kunci ON.  

Dengan panduan gambar, kita melihat bahwa setiap baris dari ms_branch akan dicari baris yang sesuai di ms_city

  • untuk baris pertama kita memiliki city_code dengan nilai "CITY-003", ini akan mencari referensinya ke tabel ms_city untuk nilai yang sama dan kita mendapatkan baris dengan nilai city_name "Lhokseumawe" yang cocok
  • untuk baris kedua kita memiliki city_code dengan nilai "CITY-083", ini akan mencari referensi ke tabel ms_city untuk nilai yang sama dan kita mendapatkan baris dengan nilai city_name "Bau-bau" yang cocok
  • segera

Penggunaan gabungan di mysql

Sekarang mari kita coba hapus referensi "Lhokseumawe" dari tabel ms_kota

DELETE FROM ms_kota WHERE nama_kota = 'Lhokseumawe';

Setelah itu coba jalankan lagi perintah JOIN di atas, Anda akan mendapatkan hasil JOIN tanpa referensi baris "Lhokseumawe". Jadi INNER JOIN dengan syarat baris dari setiap tabel memiliki nilai yang sama untuk kolom referensi (dalam hal ini kode_kota)

Penggunaan gabungan di mysql


Kembalikan baris referensi yang telah kita hapus tadi dengan perintah INSERT berikut

INSERT INTO `ms_kota` VALUES ('KOTA-003','Lhokseumawe','P33')_

INNER JOIN Antara Tabel Tanpa Kondisi ("ms_branch" dengan "ms_city")

SELECT * FROM ms_cabang INNER JOIN ms_kota

Hasilnya adalah setiap baris dari ms_branch akan digabungkan dengan semua baris dari ms_city - contoh hasilnya seperti gambar di bawah ini

Penggunaan gabungan di mysql


INNER JOIN antara tabel "ms_branch", "ms_city" dan "ms_provinsi"

SELECT ms_cabang.nama_cabang, _

       ms_propinsi.nama_propinsi 

INNER JOIN ms_kota ON ms_cabang.kode_kota = ms_kota.kode_kota_

INNER JOIN ms_propinsi ON ms_kota.kode_propinsi = ms_propinsi.kode_propinsi_

 

Hasil eksekusi terlihat seperti gambar berikut. Dengan menggabungkan ketiga tabel ini, sekarang kita mendapatkan masing-masing cabang dengan informasi nama kota dan nama provinsi tempat cabang tersebut berada.


Penggunaan gabungan di mysql


INNER JOIN tersirat dengan Koma

INNER JOIN antar tabel secara implisit dapat menggunakan daftar tabel yang dipisahkan dengan koma (,). Pengkondisian menggunakan klausa where

SELECT * FROM ms_cabang INNER JOIN ms_kota _0

SELECT * FROM ms_cabang INNER JOIN ms_kota _1

SELECT * FROM ms_cabang INNER JOIN ms_kota _2

SELECT * FROM ms_cabang INNER JOIN ms_kota _3

LINTAS BERGABUNG

CROSS JOIN identik dengan INNER JOIN di MySQL 5. 0. Pembahasannya sama dengan INNER JOIN jadi tidak akan terulang lagi disini

SELECT * FROM ms_cabang INNER JOIN ms_kota _0
SELECT * FROM ms_cabang INNER JOIN ms_kota _5
SELECT * FROM ms_cabang INNER JOIN ms_kota _6
SELECT * FROM ms_cabang INNER JOIN ms_kota _7

SELECT * FROM ms_cabang INNER JOIN ms_kota _8
SELECT * FROM ms_cabang INNER JOIN ms_kota _9

ON ms_cabang.kode_kota = ms_kota.kode_kota0

GABUNG LUAR

OUTER JOIN adalah tipe join yang mencari referensi data dari tabel sumber ke tabel lain tanpa menghilangkan sumber data ketika referensi tidak ditemukan.

Untuk menggunakan tipe OUTER JOIN perlu diperhatikan hal-hal berikut ini

  • perlu dibedakan antara tabel sumber dan tabel referensi, hal ini ditentukan dengan menentukan posisi tabel sumber apakah di kiri (KIRI) atau di kanan (KANAN)
  • jika tidak ada data dari tabel referensi yang cocok dengan kondisi join maka hanya data dari tabel sumber yang ditampilkan tetapi kolom tabel referensi akan berisi null

  • Hapus master data "Lhokseumawe" dari tabel ms_kota

    ON ms_cabang.kode_kota = ms_kota.kode_kota1


  • Lakukan join seperti pada perintah berikut, dan amati hasilnya seperti pada gambar

    ON ms_cabang.kode_kota = ms_kota.kode_kota2
    ON ms_cabang.kode_kota = ms_kota.kode_kota_3
    ON ms_cabang.kode_kota = ms_kota.kode_kota_4
    ON ms_cabang.kode_kota = ms_kota.kode_kota5
    ON ms_cabang.kode_kota = ms_kota.kode_kota6


    Penggunaan gabungan di mysql


  • Tambahkan kembali data “Lhokseumawe” ke tabel ms_kota

    ON ms_cabang.kode_kota = ms_kota.kode_kota7
    ON ms_cabang.kode_kota = ms_kota.kode_kota_8


  • Sekarang coba ubah sintaks pada kueri di atas dari "LEFT" menjadi "RIGHT" dan lihat hasil eksekusinya. Tentu saja, dari hasil tersebut Anda dapat menyimpulkan perbedaan antara kedua konstruksi tersebut

STRAIGHT_JOIN

STRAIGHT_JOIN adalah pengganti kata kunci JOIN di MySQL yang digunakan untuk "memaksa" proses join table dari kiri (LEFT) ke kanan (RIGHT)

ON ms_cabang.kode_kota = ms_kota.kode_kota6

Mungkin Anda tertarik untuk mengikuti kursus ilmu data online dari Universitas Multimedia Nusantara (grup Kompas Gramedia)?

Apa operasi bergabung di mysql?

JOIN adalah perintah dalam SQL yang berfungsi menggabungkan informasi dari dua tabel . Hasilnya adalah sekumpulan kolom yang digabungkan dari kedua tabel. Fungsi JOIN sendiri terdiri dari beberapa jenis perintah seperti INNER JOIN dan OUTER JOIN (Left Join, Right Join dan Full Join).

Apa fungsi gabung?

Menggabungkan elemen dari larik berdimensi satu atau lebih menggunakan pembatas yang ditentukan .

Jenis gabungan apa yang dapat digunakan dalam pemrograman SQL?

Kenali 4 Jenis Join Table di SQL, Yuk. .
GABUNG DALAM
2. GABUNG KIRI
3. Gabung KANAN
4. GABUNG LUAR

Apa saja jenis-jenis join?

Ada berapa jenis gabung? .
Gabungan Dalam. Gabungan dalam mungkin merupakan jenis gabung yang paling banyak digunakan. .
Kiri [Luar] Gabung. .
Kiri [Luar] Gabung tanpa Persimpangan. .
Kanan [Luar] Gabung. .
Penuh [Luar] Gabung