Tutorial Join Di MySQL

Created at by Aris Munandar

Pada artikel ini kita akan membahas tutorial join di MySQL, atau penggabungan lebih dari satu tabel data antara tabel satu dengan yang lainnya, yang saling berhubungan dan melengkapi berdasarkan relasinya masing-masing.

Tabel pada database tidak dapat berdiri sendiri, dalam satu database sederhana sekalipun membutuhkan relasi untuk menunjang pengelolaan data yang lebih efisien. Sebagai contoh, lihat pada gambar sample data dibawah ini.

tutorial join mysql database

Sebagai contoh pada gambar rancangan database sederhana di atas, dapat diketahui melalui diagram tersebut bahwa pada setiap products sudah pasti melekat brands atau merek pada produk tersebut, tidak jarang setiap brands memiliki products yang bervariasi, lebih dari satu jenis produk.

Perlu diketahui bahwa ada beberapa cara yang bisa digunakan untuk menggabungkan dua atau lebih table pada database untuk menghadapkan hasil yang dibutuhkan.

  1. Inner Join
  2. Left Join
  3. Right Join
  4. Cross Join

Masing-masing fungsi join diatas dapat anda gunakan sesuai dengan kebutuhan pengelolaan data yang anda ingin hasilkan. Mari kita praktekan dari masing-masing fungsi join diatas.

Menyiapkan Data Sample

Untuk memulai praktek tentunya kita memerlukan beberapa table serta data dummy yang bisa kita gunakan, penulis sudah menyiapkan data dummy tersebut namun sebagai catatan contoh yang digunakan adalah nama brand dan produk akan tetapi dalam tulisan tutorial join mysql ini tidak ada unsur promosi atau semacamnya.

Buatlah dua buah tabel pada database anda dengan nama brands dan juga products, anda dapat menjalankan query dibawah ini.

create table brands (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL
);

create table products (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    brand_id INT
);Code language: PHP (php)

Setelah itu tambahkan data brands dengan menggunakan query dibawah ini…

INSERT INTO brands (name) VALUES ('Lenovo'),
			         ('Dell'),
                                 ('Apple'),
                                 ('Asus'),
                                 ('Acer');Code language: JavaScript (javascript)

Dan data products menggunakan query dibawah ini…

INSERT INTO products (name, brand_id) VALUES ('IdeaPad', 1),
					     ('Legion', 1);

INSERT INTO products (name, brand_id) VALUES ('Macbook Air', 3),
                                             ('Macbook Pro', 3);

INSERT INTO products (name, brand_id) VALUES ('ROG', 4),
                                             ('TUF', 4);

INSERT INTO products (name, brand_id) VALUES ('Aspire', 0),
                                             ('Predator', 0);Code language: JavaScript (javascript)

Dengan begini kita mudah mempraktekan karena telah memiliki sample data yang akan kita gunakan.

Klausa Inner Join

Inner Join pada MySQL atau SQL umumnya digunakan untuk menggabungkan dua buah atau lebih tabel untuk menghasilkan data yang sesuai antara satu dengan tabel lainnya tanpa mengabaikan nilai yang tidak relevan, sehingga hanya data atau baris yang memiliki kecocokan yang akan dikeluarkan.

Ilustrasi Inner Join MySQL

Sebagai contoh jalankan query dibawah ini…

SELECT * FROM brands 
INNER JOIN products ON products.brand_id = brands.id

Dari query diatas akan menghasilkan data yang sesuai berdasarkan id relasinya masing-masing, dan produk yang brand_id atau FOREIGN KEY nya tidak sesuai maka tidak akan ditampilkan.

Berikut ini adalah contoh hasil dari query inner join diatas.

Tutorial Inner Join MySQL

Kalau diperhatikan hasil data yang keluar tidak menampilkan semua data, seperti pada tabel brands tidak menampilkan merk Dell, dan Acer, serta pada tabel products tidak menampilkan Aspire dan Predator, itu dikarenakan mereka tidak memiliki relasi yang cocok.

Klausa Left Join

Left Join MySQL atau SQL pada umumnya digunakan untuk menggabungkan lebih dari satu tabel dengan cara memfokuskan data pada sisi kiri, dimana ketika data pada bagian kiri tidak memiliki relasi maka data tersebut akan tetap ditampilkan, namun data pada bagian kanan akan diabaikan dan hanya menampilkan NULL untuk menutupi ketiadaan data.

Ilustrasi Left Join MySQL

Sebagai contoh coba jalankan perintah query SELECT dibawah ini…

SELECT * FROM brands
LEFT JOIN products ON products.brand_id = brands.id

Hasilnya seperti gambar dibawah ini…

Tutorial Left Join MySQL

Jika diperhatikan hasil gambar diatas, pada brands Dell dan Acer dibagian kanan yaitu tabel products menampilkan NULL untuk mengisi ketiadaan relasi, karena memang kedua merk tersebut tidak memiliki relasi produk.

Klausa Right Join

Kebalikannya dari Left Join, Right Join akan mengabaikan data bagian kiri apabila data bagian kanan tidak menemukan relasi yang cocok, maka pada bagian kiri akan menampilkan NULL untuk mengisi ketiadaan data.

Right Join Illustration

Karena Right Join akan fokus pada data bagian kanan maka semua data kanan akan ditampilkan walaupun tidak menemukan relasi pada tabel lainnya. Sebagai contoh jalankan query dibawah ini…

SELECT * FROM brands
RIGHT JOIN products ON products.brand_id = brands.id

Dari query diatas akan menampilkan data sebagai berikut…

Tutorial Right Join MySQL

Perhatikan data id, dan name pada bagian kanan, klausa Right Join akan tetap menampilkan data disisi kanan namun pada bagian kiri akan mendapat NULL untuk mengisi ketiadaan data.

Klausa Cross Join

Cross Join di MySQL digunakan untuk menampilkan semua data pada masing-masing tabel yang digabungkan bahkan jika salah satu atau lebih tidak memiliki relasi, maka dengan cross join data-data tersebut akan saling mengisi satu sama lain hingga data terpenuhi.

Data yang dikeluarkan dengan metode Cross Join adalah hasil kombinasi dari tabel satu dengan yang lainnya, misalnya jika setiap tabel memiliki Y dan Z pada masing-masing barisnya, maka kumpulan hasil kombinasi dengan Cross Join akan menghasilkan Y x Z disetiap baris data.

Sebagai contoh silahkan gunakan query berikut ini…

SELECT * FROM brands
CROSS JOIN products

Dari query diatas akan menampilkan data berikut ini…

Tutorial Cross Join MySQL

Sebagai catatan pada gambar diatas, penulis tidak menampilkan seluruh data karena keterbatasan layar. Yang diperlu diingat bahwa karena Cross Join akan mengisi seluruh data maka yang akan terjadi data yang dikeluarkan akan sangat banyak sehingga data masing-masing relasi akan terpenuhi.

Demikian tutorial join di MySQL ini, semoga dapat bermanfaat…

Comments

Congrats, you have the opportunity to be the first commenter on this article. Have questions or suggestions? Please leave a comment to start discussion.

Leave comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from Bahasaweb.com

Subscribe now to keep reading and get access to the full archive.

Continue reading