Join - Subquery - Inline Query
Bu yazımızda da JOIN, SUBQUERY ve INLINE QUERY ifadelerinin yapısal farklılıklarını birer örnek ile ele alacağız. Aşağıdaki gibi 4 tablomuz olduğunu düşünelim.
| TABLO ADI | SUTUN1 | SUTUN2 | SUTUN3 | SUTUN4 | SUTUN5 |
|---|---|---|---|---|---|
| EMPLOYEES | ID | NAME | D_ID | JOB_ID | SALARY |
| DEPARTMENTS | D_ID | LOC_ID | D_NAME | ||
| LOCATION | LOC_ID | LOC_NAME | |||
| JOB | JOB_ID | JOB_TITLE |
Şimdi 1800 numaralı (JOB_ID) işe için çalışan, departman, iş ve lokasyon bilgilerini bu 4 tablodan çekmek isteyelim.
JOIN : İlk aklımıza gelen ilgili anahtar alanların birbirine eşitlik durumu ile JOIN işlemi olacaktır.
SELECT d.d_name, l.loc_name, j.job_title, e.salary
FROM employees e, departments d, location l, job j
WHERE e.d_id = d.d_id
AND e.job_id = j.job_id
AND d.loc_id = l.loc_id
AND e.job_id = 1800
SUBQUERY : Genel itibarı ile kendisindan başka bir SQL ifadesinin içinde parantezler içinde olan SQL ifadesidir. Bir SQL ifadesinin ya SELECT kısmında yada WHERE kısmında olur. SUBQUERY, her tablo için sadece bir kere değerlendirilir.
SELECT d.d_name, (SELECT l.loc_name FROM location l where l.loc_id = d.loc_id) , j.job_title, e.salary
FROM employees e , departments d , job j
WHERE e.d_id = d.d_id
AND e.job_id = j.job_id
AND e.job_id = 1800
INLINE QUERY (INLINE VIEW) : Eğer SUBQUERY ifadesi, ana SQL ifadesinin FROM kısmında ise buna INLINE QUERY (INLINE VIEW) diyoruz. Burada amaç kompleks bir JOIN işleminin yerine daha sade bir SQL ifade elde etmek yada birbirinden ayrık SQL ifadelerini bir SQL ifadesi içinde elde etmektir.
SELECT e.salary, j.job_title , s.d_name , s.loc_name
FROM employees e ,job j,
(SELECT d.d_name, l.loc_name, d.d_id FROM departments d , location l WHERE d.loc_id = l.loc_id ) s
WHERE e.d_id = s.d_id
AND e.job_id = j.job_id
AND e.job_id = 1800
İyi Çalışmalar…


Yorum Yapin