Tujuh Teknik Join di SQL

Bagus Aji Santoso 17 Juli 2017

Tujuh Teknik Join di SQL

Jarang sekali kita mengakses suatu data hanya dari satu tabel. Biasanya saat mengambil data kita akan mengakses beberapa tabel secara bersamaan. Salah satu cara mengambil data dari beberapa tabel sekaligus dapat dilakukan dengan menggunakan join. Artikel ini akan memberikan sedikit penyegaran bagi pembaca yang mungkin sedikit lupa tentang empat jenis Join di SQL dan tiga variannya.

Apa itu join?

Join adalah cara untuk menghubungkan data yang diambil dari tabel-tabel melalui sebuah kolom yang menghubungkan mereka. Misal, pembaca mungkin ingin menghubungkan tabel alamat dengan tabel nomor telepon berdasarkan nama seseorang (contoh: "Berikan saya alamat dan nomor telepon seseorang yang bernama John Smith.").

Mengapa join itu penting?

Join memperbolehkan kita untuk mengambil data dari beberapa tabel melalui satu query. Hanya menggunakan sebuah tabel artinya kita hanya dapat menyimpan/memperoleh data yang terbatas atau justru menyimpan/memperoleh data yang terlalu banyak sehingga tabelnya menjadi kurang baik. Join menghubungkan satu tabel dengan tabel yang lain (inilah yang dimaksud dengan relational dari istilah relational database).

Ada berapa jenis join?

Berikut ini adalah empat tipe join di SQL (bersama tiga variannya). Sebagai pelengkap dari penjelasan yang ada, kami telah menyediakan contoh kode SQL.

Inner Join

Inner join mungkin tipe join yang paling banyak dipakai. Inner join mengembalikan baris-baris dari dua tabel atau lebih yang memenuhi syarat.

Image
SELECT columns
FROM TableA
INNER JOIN TableB
ON A.columnName = B.columnName;

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.

Image
SELECT columns
FROM TableA
LEFT OUTER JOIN TableB
ON A.columnName = B.columnName

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.

Image
SELECT columns
FROM TableA
LEFT OUTER JOIN TableB
ON A.columnName = B.columnName
WHERE B.columnName IS NULL

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.

Image
SELECT columns
FROM TableA
RIGHT OUTER JOIN TableB
ON A.columnName = B.columnName

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.

Image
SELECT columns
FROM TableA
RIGHT OUTER JOIN TableB
ON A.columnName = B.columnName
WHERE A.columnName IS NULL

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.

Image
SELECT columns
FROM TableA
FULL JOIN TableB
ON A.columnName = B.columnName

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.

Image
SELECT columns
FROM TableA
FULL JOIN TableB
ON A.columnName = B.columnName
WHERE A.columnName IS NULL
OR B.columnName IS NULL

Sumber