Stergeri corelate

    Utilizeaza  o subinterogare corelata  pentru a sterge  randurile dintr-un tabel pe baza randurilor din alt tabel ( sterge numai randurile dintr-un tabel care exista in alt tabel).
Exemplu:
     Se presupune ca se doreste ca pentru un angajat sa se pastreze in tabelul  Job_History  numai inregistrarile referitoare la ultimele patru  job-uri avute.  Cu alte cuvinte, daca un angajat se transfera la un la cincilea job va trebui stearsa inregistrarea referitoare  la cel mai vechi job avut. 
Acest lucru se poate realiza  prin cautarea  in tabelul Job_history  inregistrarea cu valoarea minima pentru  campul start_date corespunzatoare  angajatului. In acest scop se poate folosi  operatia de stergere corelata:

DELETE FROM  job_history jh
    WHERE employee_id =
                ( SELECT  employee_id
                    FROM employees e
                    WHERE jh.employee_id=e.employee_id
                    AND start_date =
                                (SELECT MIN(start_date)
                                    FROM  job_history jh
                                    WHERE jh.employee_id=e.employee_id)
                    AND 5> (SELECT count(*)
                                        FROM  job_history jh
                                        WHERE jh.employee_id=e.employee_id
                                         GROUP BY employee_id
                                         HAVING COUNT(*) >= 4));