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
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.
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.
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.
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 :
FULL OUTER JOIN
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 :
banyak kekuran nya saya mohon maaf.. Terima kasih..
thank u bro
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapus