MySQL - Select JOIN
Last updated
Was this helpful?
Last updated
Was this helpful?
Relationship
Relationship adalah suatu hubungan antara beberapa entitas. Konsep ini sangat penting sekali di dalam basis data, di mana memungkinkan entitas-entitas untuk saling berhubungan satu sama lain. Di dalam sebuah relationship, primary key memiliki peran penting untuk mengaitkan entitas. Selain itu, primary key juga digunakan untuk mendefinisikan batasan keterhubungan.
Join
Join merupakan salah satu konstruksi dasar dari SQL dan basis data. Join dapat didefinisikansebagai kombinasi record dari dua atau lebih tabel di dalam basis data relasional dan menghasilkan sebuah tabel (temporary) baru yang disebut sebagai joined table. Join dapat diklasifikasikan ke dalam dua jenis: inner dan outer.
Inner Join
Inner join pada dasarnya adalah menemukan persimpangan (intersection) antara dua buah tabel. Sintaks inner join diperlihatkan sebagai berikut:
Inner join juga dapat direpresentasikan dalam bentuk implisit.
Misalkan terdapat tabel A dan B, maka hasil inner join dapat diperlihatkan—sebagai bidang terarsir—dalam diagram Venn seperti Gambar 1.
Gambar 1. Inner Join
Outer Join
Left Outer Join
Left outer join (atau left join) mengembalikan semua nilai dari tabel kiri ditambah dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada nilai yang sesuai).
Sintaks
Left outer join antara tabel A dan B dapat diilustrasikan dalam diagram Venn seperti Gambar 2
Gambar 2. Left Outer Join
Right Outer Join
Right outer join (atau right join) pada dasarnya sama seperti left join, namun dalam bentuk terbalik—kanan dan kiri. Sintaks right outer join diperlihatkan sebagai berikut:
Sintaks
Right outer join antara tabel A dan B dapat diilustrasikan dalam diagram Venn seperti Gambar 3
Gambar 3. Right Outer Join
Full Outer Join
Full outer join (atau full join) pada hakekatnya merupakan kombinasi dari left dan right join. Sintaks full outer join diperlihatkan sebagai berikut:
Sintaks
Bentuk visual dari full outer join dapat diperlihatkan menggunakan diagram Venn seperti Gambar 4.
Gambar 4. Full Outer Join
Selain empat jenis join yang utama di atas, masih ada beberapa variasi join lainnya, seperti CROSS JOIN (cartesian product), NATURAL JOIN, dan sebagainya. Perlu juga diperhatikan, join bisa diimplementasikan dalam bentuk bersarang (nested join). Jadi, di dalam sebuah operasi join bisa terdapat operasi join lainnya.
Buat database nama_kantor(isi dengan nama anda)
Buat tabel karyawan dan tabel departemen dengan struktur sebagai berikut:
Data yang digunakan adalah sebagai berikut:
Sebagaimana dijelaskan, inner join akan mengembalikan data di tabel A dan B yang sesuai. Sebagai contoh, kita bisa mendapatkan data karyawan yang memiliki departemen.
Data karyawan yang memiliki departemen
Cara 1
Cara 2
Dalam pengambilan data ini, kita juga bisa menspesifikasikan field terkait. Sebagai contoh, hanya mengambil nama karyawan dan nama departemen saja.
Agar penulisan SQL lebih efisien, kita dapat memanfaatkan fitur “ derived table” (atau alias).
Pada pernyataan SQL di atas, tabel karyawan dinotasikan dengan huruf k dan tabel departemen menggunakan huruf d.
Outer Join
Left Outer Join
Data seluruh karyawan (yang memiliki departemen maupun tidak)
Data karyawan yang tidak memiliki departemen
Right Outer Join
Full Outer Join
Cross Join
Cara 1
Cara 2