--> Skip to main content

Tutorial MySQL : Join

Pada pembahasan sebelumnya, kita telah mencoba mempelajari fungsi aggregate dan menerapkannya pada DBMS MySQL. Dalam pembahasan Tutorial MySQL edisi ini, kita akan mempelajari tentang Join.

Join secara makna kata berarti menggabungkan. Join pada SQL dapat didefinisikan suatu keyword SQL untuk mendapatkan data dari hasil penggabungan dua data atau lebih.

Untuk mengimplementasikan Join, terlebih dahulu kita akan membuat database yang kita berinama KURSUS, dan membuat tabel yang bernama kursus dan peserta seperti script dibawah ini :

Script penciptaan database KURSUS:
CREATE DATABASE IF NOT EXISTS KURSUS

Script pembuatan tabel kursus :
CREATE TABLE `kursus` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `nama_kursus` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

Script penciptaan tabel peserta :
CREATE TABLE `peserta` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `nama` varchar(30) NOT NULL,
  `kursus` smallint(5) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_kursus` (`kursus`),
  CONSTRAINT `FK_kursus` FOREIGN KEY (`kursus`) REFERENCES `kursus` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

Kemudian, masing-masing tabel kita inputkan data seperti gambar berikut :

(Gambar.1 )

INNER JOIN ATAU JOIN


(Gambar.2 Inner Join )

Inner Join atau sering disebut hanya Join, seperti yang ditunjukkan oleh Gambar.2, hanya mengembalikan nilai yang bersesuaian diantara ke-2 tabel. Secara matematis dapat dikatakan akan mengembalikan data yang saling beririsan.

SELECT peserta.`nama`, kursus.`nama_kursus` AS kursus
FROM peserta
INNER JOIN `kursus` ON peserta.`kursus` = kursus.`id`;

Output dari query diatas :

(Tabel.1 Inner Join 2 Tabel )

Hasil yang ditunjukkan oleh Tabel.1 memperlihatkan, hanya data-data yang saling bersesuaian (beririsan) yang ditampilkan.

LEFT OUTER JOIN


(Gambar.3 Left Outer Join)

Left outer join atau terkadang disebut left join hanya akan mengembalikan data dari sisi tabel kiri, artinya semua data pada tabel peserta akan ditampilkan meskipun ada data yang tidak berkesesuaian (berelasi / berkesesuaian).

SELECT peserta.`nama`, kursus.`nama_kursus` AS kursus
FROM peserta
LEFT JOIN `kursus` ON peserta.`kursus` = kursus.`id`;

Output dari query diatas :

(Tabel.2 Left Oouter Join 2 Tabel)


Hasil yang ditunjukkan oleh Tabel.2 memperlihatkan, data dari tabel kiri (peserta) akan ditampilkan seluruhnya, meskipun kolom nama pada tabel peserta tidak berelasi dengan kolom nama kursus pada tabel kursus.

RIGHT OUTER JOIN

(Gambar.4 Right Outer Join)


Right outer join atau terkadang disebut right join hanya akan mengembalikan data dari sisi kanan.
SELECT peserta.`nama`, kursus.`nama_kursus` AS kursus
FROM peserta
RIGHT JOIN `kursus` ON peserta.`kursus` = kursus.`id`;

Output dari query diatas :

(Tabel.3 Right Join 2 Tabel)



Hasil yang ditunjukkan oleh Tabel.3 memperlihatkan, bahwa semua data pada tabel kanan (kursus) akan ditampilkan, termasuk data yang berelasi dengan tabel sebelah kiri (peserta) yang lebih dari sekali akan ikut ditampilkan.

Right Join dalam implementasinya jarang digunakan, karena kita dapat menghasilkan data yang sama dengan Left Join seperti yang ditunjukkan oleh query berikut :
SELECT peserta.`nama`, kursus.`nama_kursus` AS kursus
FROM kursus
LEFT JOIN `peserta` ON peserta.`kursus` = kursus.`id`;

Output dari query diatas :

(Tabel.4 Left Join 2 Tabel Pengganti Right Join)

Perhatikan Tabel.3 dan Tabel.4, Hasil right join dapat digantikan oleh left join dengan merubah sedikit query seperti yang ditunjukkan oleh query diatas.
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar