JOIN SQL
- Halaman Sebelumnya Aliases SQL
- Halaman Berikutnya Inner 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
- Halaman Sebelumnya Aliases SQL
- Halaman Berikutnya Inner Join SQL