JOIN SQL

SQL join digunakan untuk mencari data dari beberapa tabel berdasarkan hubungan kolom di tabel-tabel tersebut.

Join dan Kunci

Kali ini untuk mendapatkan hasil yang lengkap, kami perlu mengambil data dari dua atau lebih tabel. Kita perlu melaksanakan join.

Tabel dalam database dapat dihubungkan melalui kunci. Kunci utama (Primary Key) adalah kolom dimana setiap nilai baris di kolom itu adalah unik. Dalam tabel, setiap nilai kunci utama adalah unik. Tujuannya adalah untuk menggabungkan data antar tabel tanpa mengulangi semua data di setiap tabel.

Lihat tabel "Persons":

Id_P LastName FirstName Alamat City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

Perhatikan, kolom "Id_P" adalah kunci utama dalam tabel Persons. Ini berarti tidak ada baris yang sama dapat memiliki Id_P yang sama. Bahkan jika nama dua orang sama, Id_P masih dapat membedakannya.

Selanjutnya lihat tabel "Orders":

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

Perhatikan, kolom "Id_O" adalah kunci utama dalam tabel Orders, sambil itu, kolom "Id_P" di tabel "Orders" digunakan untuk merujuk ke tabel "Persons" tanpa perlu menggunakan nama yang tepat dari mereka.

Perhatikan, kolom "Id_P" menghubungkan kedua tabel di atas.

Mengutip Dua Tabel

Kita dapat mengambil data dari dua tabel dengan mengutip dua tabel:

Siapa yang memesan produk, dan apa produk yang mereka memesan?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

Hasil Koleksi:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

SQL JOIN - Menggunakan Join

Selain metode di atas, kita juga dapat menggunakan kata kunci JOIN untuk mendapatkan data dari dua tabel.

Jika kita ingin menampilkan pemesanan semua orang, kita dapat menggunakan pernyataan SELECT di bawah ini:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

Hasil Koleksi:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

Jenis JOIN SQL yang Berbeda

Selain INNER JOIN (dalam hubungan) yang digunakan di contoh di atas, kita juga dapat menggunakan beberapa jenis koneksi lainnya.

Di bawah ini adalah daftar jenis JOIN yang dapat Anda gunakan, serta perbedaan antar mereka.

  • JOIN: Kembalikan baris jika ada cocokan di setidaknya satu tabel
  • LEFT JOIN: Bahkan jika tidak ada cocokan di tabel kanan, kembalikan semua baris dari tabel kiri
  • RIGHT JOIN: Bahkan jika tidak ada cocokan di tabel kiri, kembalikan semua baris dari tabel kanan
  • FULL JOIN: Kembalikan baris jika ada cocokan di salah satu tabel