JOIN adalah Kata
kunci yang di gunakan pada sql/ansi untuk melakukan query dua tabel atau lebih
yang di dasarkan hubungan anatar kolom tertentu dalam tabel.
ada beberapa perintah join yaitu :
ada beberapa perintah join yaitu :
1. INNER JOIN adalah join yang hanya akan menampilkan baris untuk data yang memiliki nilai yang sama/ yang ada pasangannya pada field kunci dengan tabel yang berelasi.
SQL menetapkan dua cara yang berbeda untuk mengekspresikan sintaksis join: “eksplicit join notation” dan “implicit Join notation”.
eksplisit join notation” menggunakan join keyword untuk menentukan tabel untuk bergabung, dan ON keyword untuk menentukan predikat untuk bergabung, seperti dalam contoh berikut:
SELECT *
FROM employee
INNER JOIN department ON employee.DepartmentID = department.DepartmentID;
“implicit join notation” hanya berisi daftar tabel untuk bergabung, dalam klausa FROM dari pernyataan SELECT, menggunakan koma untuk memisahkan mereka. Oleh karena itu menentukan cross join, dan klausa WHERE tambahan mungkin berlaku filter-predikat.
Contoh berikut ini adalah setara dengan yang sebelumnya, tapi kali ini menggunakan implicit join notation:
SELECT *
FROM employee, department
WHERE employee.DepartmentID = department.DepartmentID;
Query yang diberikan
pada contoh di atas akan bergabung dengan tabel Employee dan Department
menggunakan kolom DepartmentId dari kedua tabel. Dimana DepartmentId ini
pertandingan tabel (yaitu join-predikat puas), query akan menggabungkan kolom
LastName, DepartmentId dan DepartmentName dari dua tabel menjadi baris hasil.
Dimana DepartmentId tidak cocok, tidak ada baris hasil yang dihasilkan.
2. Cross join yaitu
mengembalikan produk Cartesian dari baris dari tabel dalam bergabung. Dengan
kata lain, hal itu akan menghasilkan baris yang menggabungkan setiap baris dari
tabel pertama dengan setiap baris dari tabel kedua.identik dengan innerjoin.
Sintax dari SQL CROSS JOIN :
Contoh eksplisit cross join:
SELECT *
FROM employee
CROSS JOIN department;
Sintax dari SQL CROSS JOIN :
Contoh eksplisit cross join:
SELECT *
FROM employee
CROSS JOIN department;
Contoh implisit cross
join:
SELECT *
FROM employee, department;
SELECT *
FROM employee, department;
3. Other join
ada 3 perintah yaitu
a. Left Join Menampilkan semua data yang ada di tabel kiri dan hanya data yang bersesuaian di tabel kanan, jika tabel kiri tidak mempunyai lawan di tabel kanan maka tabel kanan akan diisi dengan null.
Sintax dari SQL LEFT JOIN :
SELECT *
FROM employee
LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
Oracle mendukung alternatif syntax, yaitu :
SELECT * FROM employee, department WHERE employee.DepartmentID = department.DepartmentID(+)
b. Right join Menampilkan semua data yang ada di tabel kanan dan hanya data yang bersesuaian di tabel kiri, jika tabel kanan tidak mempunyai lawan di tabel kiri maka tabel kiri akan diisi dengan null.
Contoh :
SELECT *
FROM employee
RIGHT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
Oracle mendukung alternatif syntax, yaitu:
SELECT * FROM employee, department WHERE employee.DepartmentID(+) = department.DepartmentID
c. Full join Gabungan dari left outer join dan right outer join.
Contoh :
Select first_name, department_name
From employees
FULL OUTER JOIN departments ON employees.department_id=departments.department_id;
ada 3 perintah yaitu
a. Left Join Menampilkan semua data yang ada di tabel kiri dan hanya data yang bersesuaian di tabel kanan, jika tabel kiri tidak mempunyai lawan di tabel kanan maka tabel kanan akan diisi dengan null.
Sintax dari SQL LEFT JOIN :
SELECT *
FROM employee
LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
Oracle mendukung alternatif syntax, yaitu :
SELECT * FROM employee, department WHERE employee.DepartmentID = department.DepartmentID(+)
b. Right join Menampilkan semua data yang ada di tabel kanan dan hanya data yang bersesuaian di tabel kiri, jika tabel kanan tidak mempunyai lawan di tabel kiri maka tabel kiri akan diisi dengan null.
Contoh :
SELECT *
FROM employee
RIGHT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID;
Oracle mendukung alternatif syntax, yaitu:
SELECT * FROM employee, department WHERE employee.DepartmentID(+) = department.DepartmentID
c. Full join Gabungan dari left outer join dan right outer join.
Contoh :
Select first_name, department_name
From employees
FULL OUTER JOIN departments ON employees.department_id=departments.department_id;
4. Selfe join Join yang dilakukan antar kolom dalam satu tabel.
Contoh :
Select
pegawai.first_name as pegawai, manager.first_name as manager
From employees pegawai
INNER JOIN employees manager ON pegawai.manager_id=manager.employee.id;
From employees pegawai
INNER JOIN employees manager ON pegawai.manager_id=manager.employee.id;
5. Equi jon adalah jenis tertentu dari komparator berbasis join,yang hanya menggunakan perbandingan kesetaraan dalam predikat join.Menggunakan operator perbandingan lainnya (seperti <) mendiskualifikasi bergabung sebagai equi-join.
Permintaan yang ditampilkan di atas telah memberikan contoh dari EQUI JOIN :
SELECT *
FROM employee
JOIN department ON employee.DepartmentID = department.DepartmentID;
EQUI JOIN bisa ditulis sebagai berikut :
SELECT * FROM employee, department WHERE employee.DepartmentID = department.DepartmentID;
6. Non equijoin menggunakan tanda selain =
7. NATURAL JOIN
adalah jenis equi-join mana predikat bergabung timbul implisit dengan
membandingkan semua kolom di kedua tabel yang memiliki kolom yang sama-nama
dalam tabel bergabung. Tabel bergabung dihasilkan hanya berisi satu kolom untuk
setiap pasangan kolom sama bernama.
Permintaan contoh di atas untuk inner joins dapat dinyatakan sebagai natural join dengan cara berikut:
Permintaan contoh di atas untuk inner joins dapat dinyatakan sebagai natural join dengan cara berikut:
SELECT *
FROM employee
NATURAL JOIN department;
FROM employee
NATURAL JOIN department;
Tidak ada komentar:
Posting Komentar