Self  JOIN

Sunt situatii in care  este necesar  ca un tabel sa intre in asociere cu el insusi.
Exemplu: Se doreste  gasirea tuturor facturilor care au fost emise la o data ulterioara  datei in care a fost emisa factura cu numarul 12345.
In acest caz, tabelul Facturi va fi accesat de doua ori: prima oara pentru a gãsi inregistrarea corespunzatoare  pentru numar = 12345, cu toate valorile corespunzatoare ale campurilor (inclusiv  data=data1),  dupa care se vor determina acele inregistrari ale caror valori in campul data sunt superioare valorii data1

Sintaxa ORACLE
SELECT f1.numar, f1.data, f1.cod
    FROM facturi f, facturi f1
    WHERE f.numar = 12345 and f.fata < f1.data;

Sintaxa SQL:99

SELECT f1.numar, f1.data, f1.cod
    FROM facturi f  JOIN facturi f1
    ON  (f.fata = f1.data) and f.numar = 12345 ;