Computer, Linux, Program, Source Code, Tutorial, Website

2021-05-09

Mengenal dan Memahami JOIN Command pada SQL Beserta Cara Implementasinya

Pada kesempatan kali ini saya akan kembali lagi membahas salah satu materi tentang database yang paling umum dan sering anda temui pada RDB (Relationship Database) yaitu adalah JOIN. Sesuai dengan namanya JOIN yang dalam Bahasa Indonesia dapat diartikan dengan menghubungkan atau bergabung adalah salah satu command SQL yang digunakan untuk menampilkan data hasil SELECT dari gabungan beberapa TABLE yang  saling be relasi.


Apa yang Dimaksud dengan JOIN ?

Seperti yang sempat saya singgung sebelumnya jadi JOIN adalah salah satu variasi yang dapat anda gunakan ketika anda sedang membaca (read) atau mengambil data dari database dengan menggunakan perintah SELECT. Dengan menggunakan perintah JOIN sangat memungkinkan bagi anda, apabila melakukan SELECT data pada 2 atau lebih tabel yang saling be-relasi pada database.


Konsep JOIN Table

Data pada tabel database yang saling ber-relasi itu bisa dikatakan memiliki konsep seperti himpunan, pendapat tersebut dapat dibuktikan mengamati gambar berikut ini :

Gambar. Ilustrasi himpunan pada JOIN TABLE 

Pada gambar himpunan di atas terdapat 2 buah himpunan yang saling beririsan, berikut ini penjelasan lebih lanjut dari ilustrasi himpuann pada join table di atas :

  • Himpunan A / Table A, adalah tabel yang pertama di definisikan pada query SELECT (didefinisikan setelah command FROM).
  • Himpunan B / Table B, adalah tabel yang kedua (atau table yang berelasi dengan table pertama), atau table yang didefinisikan setelah command JOIN.
  • Lalu bagian yang di-arsir di tengah adalah bagian yang beririsan antara himpunan A dengan himpunan B, atau bisa dikatakan bahwa data Table A yang berelasi dengan Table B.


BASIC COMMAND (Perintah Dasar JOIN pada Database)

Perintah dasar JOIN yang perlu anda ketahui, sebagai berikut :

SELECT table_a.*, table_b.id, table_b.name,  table_b.id_relation
FORM table_a
JOIN table_b
ON table_a.id = table_b.id_relation


Keterangan:

  • SELECT, adalah Perintah yang digunakan untuk menunjuk atribut yang akan ditampilkan an ketika melakukan select data pada database.
  • FROM, adalah perintah / command yang digunakan untuk menunjuk tabel mana pada database yang akan di SELECT pertama kali dalam join table.
  • JOIN, adalah suatu perintah yang digunakan untuk menunjuk tabel yang berelasi dengan tabel yang telah di definisikan pertama.
  • ON adalah suatu perintah atau command yang digunakan untuk menunjukkan relasi antar table yang sedang di join kan, dengan cara mendefinisikan Primary Key pada tabel pertama selalu diikuti dengan "=" (tanda sama) dengan, lalu diikuti dengan mendefinisikan Foreign Key pada tabel kedua. (Primary key pada table pertama dengan Forigen Key pada table ke-2, bisa dikatakan berelasi apabila value / nilainya sama).
  • Jika anda ingin menambahkan kondisi anda dapat menambahkan WHERE atau yang lainnya sesuai yang anda butuhkan pada akhir query sebelum tanda ";" (titik koma).


Macan-Macam JOIN

Dalam JOIN table mengenal beberapa macam / jenis JOIN yang dapat anda terapkan dalam menampilkan / mengambil data dari database, berikut ini penjelasan masing-masing nya serta command-nya.

Oke mungkin sebelumnya, sudah saya siapkan sebuah file SQL yang berisi database tentang digital distribution system, yang dapat anda download, untuk menguji contoh-contoh SQL command dibawah ini,

Download : [ DRIVE ]
Password : langITTutorial.blogspot.com

Gambar ERD : Digital Distribution System  dari file SQL yang dapat anda akses melalui link di atas.

Silahkan download file SQL yang telah saya siapkan, lalu import pada PHPMYADMIN, dengan begitu anda dapat mempraktik kan contoh-contoh perintah join dibawah berikut :


INNER JOIN

INNER JOIN pada SQL merupakan default command dari JOIN yang fungsinya adalah untuk mengambil record data dari 2 tabel yang memiliki relasi, jadi jika data pada table yang berelasi tidak memiliki relasi dengan data di tabel lain maka data tersebut tidak akan tampil.

Gambar illustrasi Inner Join / Join dalam bentuk himpunan.

Pada MYSQL / MARIA DB dalam menjalakan perintah INNER JOIN anda dapat menulisnya hanya dengan menggunakan perintah JOIN saja. Berikut ini contoh command JOIN pada SQL :

SELECT application.*, user.name_user FROM application
INNER JOIN user
ON application.id_user = user.id_user;

Anda juga dapat menggunakan perintah berikut ini :

#SC
SELECT application.*, user.name_user FROM application
JOIN user
ON application.id_user = user.id_user;

Kedua command diatas menghasilkan result data yang sama, berikut ini hasil nya :

Gambar hasil dari JOIN / INNER JOIN


LEFT JOIN (Left Outer Join)

LEFT JOIN adalah salah satu perintah join yang sesuai dengan namanya left yang artinya kiri berarti mengambil semua record data pada tabel yang di SELECT, yang memiliki relasi dengan table lain atau pun tidak. Jadi apabila data memiliki relasi maka record data pada tabel yang ditunjuk pertama (di SELECT), beserta record data pada tabel yang di-join-kan akan ditampilkan, namun jika data tabel yang pertama kali di tunjuk (di SELECT) tidak memiliki relasi maka record akan tetap ditampilkan dengan nilai pada attribute tabel yang di-join-kan bernilai NULL.

Gambar illustrasi Left Join dalam bentuk himpunan.


Berikut ini contoh command LEFT JOIN pad SQL :

SELECT user.name_user, application.* FROM user
LEFT JOIN application
ON application.id_user = user.id_user;

Berikut ini record yang ditampilkan dari LEFT JOIN :

Gambar Hasil Record LEFT JOIN


RIGHT JOIN (Right Outer Join)

oke, saya kira cukup jelas penjelasan tentang LEFT JOIN di atas, pada dasarnya untuk RIGHT JOIN merupakan kebalikan dari LEFT JOIN. RIGHT JOIN adalah perintah SQL yang digunakan untuk menggabungkan record data pada 2 tabel yang saling berelasi yaitu semua data yang ada table kedua atau tabel yang ada di sebelah kanan, dan data pada tabel kedua atau tabel kiri yang memiliki relasi dengan tabel kanan atau tabel kedua.

Gambar illustrasi Right Join dalam bentuk himpunan.


Berikut ini contoh command RIGHT JOIN pad SQL :

SELECT application.*, user.name_user FROM application
JOIN user
ON application.id_user = user.id_user;

Berikut ini record yang ditampilkan dari RIGHT JOIN :


Gambar Hasil Record RIGHT JOIN


FULL OUTER JOIN

Join yang keempat yang perlu anda ketahui adalah FULL OUTER JOIN atau ada juga yang menyebutnya dengan dengan Cross Join, full outer join ini memiliki kegunaan atau fungsi untuk mengambil semua record data yang terdapat pada table yang ber-relasi, FULL OUTER JOIN memungkinkan untuk menampilkan data / record pada semua table yang memiliki relasi atau pun tidak memiliki relasi.

Gambar Ilustrasi Full outer Join / Cross Join dalam bentuk himpunan.

Berdasarkan pengalaman saya dalam menggunakan DBMS, command FULL OUTER JOIN tersedia pada DBMS SQL SERVER, namun masih sangat memungkinkan bagi anda yang menggunakan DBMS MYSQL untuk mengambil record data dengan karakteristik seperti FULL OUTER JOIN.

Berikut ini contoh command FULL OUTER JOIN pada dbms SQL SERVER :


SELECT application.*, user.name_user FROM applicationFULL OUTER JOIN user
ON application.id_user = user.id_user;



NOTE :

  • Perlu anda ketahui JOIN tidak semata-mata command yang memungkinkan melakukan merge pada hasil data yang ditampilkan dari 2 buah table dalam 1 row, jika anda mengetahui tentang drajat kardinalitas one-to-many, maka ketika 1 row pada table pertama berelasi dengan 3 row dari table ke-2 misalkan, maka akan terdapat 3 row hasil data yang mengandung data 1 row dari table pertama dan masing-masing memiliki 1 row data dari 3 row dari table ke-2.
  • Perbedaan INNER dan OUTER, INNER pada JOIN merepresentasikan bahwa data yang diambil / di-SELECT hanyalah data yang memiliki relasi, sedangkan OUTER memungkinkan untuk mengambil data yang tidak memiliki relasi.


REFERENCE :


Sekian artikel yang membahas tentang perintah JOIN pada SQL kali ini,
banyak kekuran nya saya mohon maaf.. Terima kasih..

~Semoga Bermanfaat~

2 komentar:

 
Top