JOIN SQL

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

Join dan Kunci

Kadang-kadang untuk mendapatkan hasil yang lengkap, kami perlu mengambil hasil dari dua atau lebih tabel. Kita perlu melaksanakan join.

Tabel dalam database dapat disambungkan satu sama lain melalui kunci. Kunci utama (Primary Key) adalah kolom di mana setiap baris mempunyai nilai yang unik. Dalam tabel, nilai setiap kunci utama adalah unik. Tujuannya adalah untuk mengikat data antar tabel tanpa mengulangi semua data di dalam setiap tabel.

Sila lihat tabel "Persons" berikut:

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

Sila pastikan, kolom "Id_P" adalah kunci utama dalam tabel Persons. Ini berarti tidak ada dua baris yang dapat memiliki nilai Id_P yang sama. Meskipun nama kedua orang sama, Id_P dapat membedakannya.

Sila lihat tabel "Orders" berikut:

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

Sila pastikan, "Id_O" adalah kunci utama dalam tabel Orders, serta, kolom "Id_P" dalam tabel Orders digunakan untuk merujuk kepada tabel "Persons" tanpa perlu menggunakan nama pasti mereka.

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

Mengutip dua tabel

Kami dapat mendapatkan 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 set:

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

SQL JOIN - Menggunakan Join

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

Jika kami ingin menampilkan pemesanan semua orang, kami 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 set:

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

Jenis JOIN SQL yang berbeda

Selain INNER JOIN (koneksikan dalam) yang digunakan di contoh di atas, kami juga dapat menggunakan beberapa jenis koneksikan lainnya.

Di bawah ini adalah jenis JOIN yang dapat Anda gunakan, serta perbedaan antaranya.

  • JOIN: Jika ada yang cocok di tabel, kembalikan baris
  • LEFT JOIN: Jika tidak ada yang cocok di tabel kanan, kembalikan semua baris dari tabel kiri
  • RIGHT JOIN: Jika tidak ada yang cocok di tabel kiri, kembalikan semua baris dari tabel kanan
  • FULL JOIN: Jika ada yang cocok di salah satu tabel, kembalikan baris