Menggabungkan 2 tabel – JOIN SQL
Operasi menggabungkan sebuah 2 tabel didalam SQL dinamakan operasi join table yang melibatkan primary dan foreign key untuk mendapatkan irisan data. Terkadang Operasi Join banyak melibatkan beberapa tabel menjadi satu kesatuan.
Operasi join merupakan core database karena kekuatan dalam relational nya yang mampu menggabungkan banyak tabel dan saling berhubungan. Keuntungan nya yaitu memisahkan antara tabel master dan tabel transaksi. Bagi kalian wajib tahu dan mengerti operasi Join. Yuk kita pelajari secara singkat Menggabungkan 2 tabel – JOIN SQL
Misalkan ada 2 tabel yang akan kita gabungkan jadi 1 yaitu data_desa berisi nama desa dan data_transaksi berisi informasi harian mengenai transaksi yang dicatat per bulan Masing-masing mempunyai primary key nya yaitu
- Tabel data_desa dengan primary key yaitu id_desa
- Tabel data_transaksi dengan primary key yaitu id_transaksi
kalian bisa melihat pada tabel data_transaksi terdapat 2 kali transaksi id_desa yang melakukan transaksi yaitu pada bulan 1 dan 2. Kemudian kita akan gabungkan akan dapat informasi sebagai berikut
pada contoh diatas, kita bisa menggunakan joint right dengan kode SQL sebagai berikut
SELECT data_desa.nama_desa, data_desa.id_desa,count(data_transaksi.bulan) as jumlah_transaksi FROM data_transaksi RIGHT join data_desa ON data_desa.id_desa = data_transaksi.id_desa GROUP BY data_desa.id_desa
Maka hasilnya sebagai berikut
Sebenarnya ada 7 teknik joint didalam SQL yaitu
1. Inner Join
Contents
Inner join mungkin tipe join yang paling banyak dipakai. Inner join mengembalikan baris-baris dari dua tabel atau lebih yang memenuhi syarat.
SELECT columns FROM TableA INNER JOIN TableB ON A.columnName = B.columnName;
2. Left [Outer] Join
Left outer join (sering disingkat left join) akan mengembalikan seluruh baris dari tabel disebelah kiri yang dikenai kondisi ON dan hanya baris dari tabel disebelah kanan yang memenuhi kondisi join.
SELECT columns FROM TableA LEFT OUTER JOIN TableB ON A.columnName = B.columnName
3. Left [Outer] Join without Intersection
Join ini merupakan variasi dari left outer join. Pada join ini kita hanya akan mengambil data dari tabel sebelah kiri yang dikenai kondisi ON yang juga memenuhi kondisi join tanpa data dari tabel sebelah kanan yang memenuhi kondisi join.
SELECT columns FROM TableA LEFT OUTER JOIN TableB ON A.columnName = B.columnName WHERE B.columnName IS NULL
4. Right [Outer] Join
Right outer join (sering disingkat right join) akan mengembalikan semua baris dari tabel sebelah kanan yang dikenai kondisi ON dengan data dari tabel sebelah kiri yang memenuhi kondisi join. Teknik ini merupakan kebalikan dari left outer join.
SELECT columns FROM TableA RIGHT OUTER JOIN TableB ON A.columnName = B.columnName
5. Right [Outer] Join without Intersection
Teknik ini merupakan variasi dari right outer join. Pada join ini kita hanya akan mengambil data dari tabel sebelah kanan yang dikenai kondisi ON yang juga memenuhi kondisi join tanpa data dari tabel sebelah kanan yang memenuhi kondisi join.
SELECT columns FROM TableA RIGHT OUTER JOIN TableB ON A.columnName = B.columnName WHERE A.columnName IS NULL
6. Full [Outer] Join
Full outer join (sering disingkat full join) akan mengembalikan seluruh baris dari kedua tabel yang dikenai ON termasuk data-data yang bernilai NULL.
SELECT columns FROM TableA FULL JOIN TableB ON A.columnName = B.columnName
7. Full [Outer] Join without Intersection
Variasi lain dari full outer join yang akan mengembalikan seluruh data dari kedua tabel yang dikenai ON tanpa data yang memiliki nilai NULL.
SELECT columns FROM TableA FULL JOIN TableB ON A.columnName = B.columnName WHERE A.columnName IS NULL OR B.columnName IS NULL
Operasi Join SQL pada SQlite
Berbeda dengan SQlite yang hanya mendukung operasi join inner, outer, dan cross join – Belajar Database Relational SQL Lite Bagian 4 – Join Table