Oracle Apex 3 - Query Multi Tabel dengan Variabel Penampung
Assalamu'alaikum
DML Dengan Variabel
Semisal tabel employees kita arahkan agar menggunakan variabel e dan tabel jobs kita arahkan agar menggunakan variabel j. Sehingga penerapan instruksinya akan lebih mudah ketika kita ingin manipulasi data yang ingin di cari hanya dengan menggunakan huruf e dan j yang mewakili kedua entitas tersebut.
Struktur Penulisan DML Variabel
Disini semisal saya ingin menampilkan data nama pertama karyawan, nama terakhir, nomor telefon dan job title. Untuk nama depan, belakang, nomor telefon dan salary berada di dalam tabel employees, penulisannya tinggal kita tambahkan variabel e di ikuti simbol titik (e.) dan di sambung dengan attribute yang berkaitan. Begitu juga dengan attribute job title yang berada di tabel Jobs. Maka penulisannya j.job_title.Sedangkan untuk penulisan pada baris From, dituliskan dengan nama tabelnya lalu di ikuti variabel yang menandakan nama tabel tersebut. Semisal pada tabel Employees, maka di ikuti oleh variabel e yang menandakan variabel e tersebut adalah dari tabel employees.
Dan struktur yang terakhir, ingat!!. Kalau sudah berkaitan dengan query multi tabel, maka kita perlu menghubungkan foreign_key antara tabel Jobs dengan tabel Employees. Dalam hal ini foreign key yang menghubungkan keduanya adalah Job_ID. Dan tentu karena kita menggunakan variabel, pada deklarasinya penghubungan foreign key ini harus di awali dengan variabel yang mewakili entitas yang di sebutkan di atas.
SELECT e.FIRST_NAME, e.LAST_NAME, e.PHONE_NUMBER, j.JOB_TITLE, e.SALARY FROM EMPLOYEES e, JOBS j WHERE j.JOB_ID = e.JOB_ID; |
SELECT e.FIRST_NAME, e.LAST_NAME, e.PHONE_NUMBER, j.JOB_TITLE, e.SALARY, d.DEPARTMENT_NAME FROM EMPLOYEES e, JOBS j, DEPARTMENTS d WHERE j.JOB_ID = e.JOB_ID AND d.DEPARTMENT_ID = e.DEPARTMENT_ID; |
SELECT e.FIRST_NAME, e.LAST_NAME, e.PHONE_NUMBER, j.JOB_TITLE, e.SALARY, d.DEPARTMENT_NAME FROM EMPLOYEES e, JOBS j, DEPARTMENTS d WHERE j.JOB_ID = e.JOB_ID AND d.DEPARTMENT_ID = e.DEPARTMENT_ID AND SALARY BETWEEN 1000 and 5000; |
SELECT e.FIRST_NAME, e.LAST_NAME, e.PHONE_NUMBER, j.JOB_TITLE, e.SALARY, d.DEPARTMENT_NAME FROM EMPLOYEES e, JOBS j, DEPARTMENTS d WHERE j.JOB_ID = e.JOB_ID AND d.DEPARTMENT_ID = e.DEPARTMENT_ID AND SALARY BETWEEN 1000 and 5000 ORDER BY DEPARTMENT_NAME; |