Gabung digunakan untuk menggabungkan dua tabel terkait menjadi satu.
Dalam contoh Anda, Anda dapat menggabungkan tabel Karyawan dan tabel Departemen, seperti:
SELECT FNAME, LNAME, DNAME
FROM
EMPLOYEE INNER JOIN DEPARTMENT ON EMPLOYEE.DNO=DEPARTMENT.DNUMBER
Ini akan menghasilkan recordset seperti:
FNAME LNAME DNAME
----- ----- -----
John Smith Research
John Doe Administration
Saya menggunakan INNER JOIN
di atas. INNER JOIN
s menggabungkan dua tabel sehingga hanya record dengan kecocokan di kedua tabel ditampilkan, dan mereka bergabung dalam hal ini, pada nomor departemen (bidang DNO di Karyawan, DNUMBER di tabel Departemen).
LEFT JOIN
s memungkinkan Anda untuk menggabungkan dua tabel saat Anda memiliki catatan di tabel pertama tetapi mungkin tidak memiliki catatan di tabel kedua. Misalnya, Anda ingin daftar semua karyawan, ditambah tanggungan apa pun:
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_last, DEPENDENT.LNAME as dependent_last
FROM
EMPLOYEE INNER JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
Masalahnya di sini adalah jika seorang karyawan tidak memiliki dependen, maka recordnya tidak akan muncul sama sekali -- karena tidak ada record yang cocok di tabel DEPENDENT.
Jadi, Anda menggunakan kiri join yang menyimpan semua data di "kiri" (yaitu tabel pertama) dan menarik data yang cocok di "kanan" (tabel kedua):
SELECT EMPLOYEE.FNAME as employee_first, EMPLOYEE.LNAME as employee_last, DEPENDENT.FNAME as dependent_first, DEPENDENT.LNAME as dependent_last
FROM
EMPLOYEE LEFT JOIN DEPENDENT ON EMPLOYEE.SSN=DEPENDENT.ESSN
Sekarang kita mendapatkan semua dari catatan karyawan. Jika tidak ada dependen yang cocok untuk karyawan tertentu, dependent_first
dan dependent_last
bidang akan menjadi nol.