Oracle PL/SQL: INNER JOIN

Oracle PLSQL de JOIN birden cok tablodan, yurutelecek bir SQL komutu ile veri cekmek icin kullanılır. Bir tek SQL sorgusu ile iki veya daha fazla sayida tablo mantiksal olarak birlestirilerek istenilen kosulu saglayan satirlar getirilir.

INNER JOIN

En sik kullanilan JOIN tipi olarak bunu soyleyebiliriz.  Birden cok tablodan istenilen kosulu saglayan tum satirlari sorgu sonucunda verir. INNER JOIN iki kumenin kesisim bolgesindeki elemanlarin hepsini getirir diyebiliriz.Kesisim bolgesinin sinirlarini da SQL deki kosul belirler. Ornekle aciklamak icin salespeople ve sales isimli iki tane tablomuz olsun:

Person_id LastName FirstName
10000 Ali Yazar
10001 Veli Bozar
10002 Satilmis Dursun
10003 Orhan Gutan
Order_id SalesPerson_id order_date
500125 10000 2003/05/12
500126 10001 2003/05/13
500127 10004 2003/05/14

INNER JOIN kullanan Oracle SELECT sorgusunu  :

SELECT salespeople.LastName, salespeople.FirstName, sales.order_date
FROM salespeople
INNER JOIN sales
ON salespeople.Person_id = orders.SalesPerson_id;

Bu sorgunun cevabi :

LastName Firstname order_date
Ali Yazar 2003/05/12
Veli Bozar 2003/05/13

Eger sorguyu asagidaki gibi yurutsek

SELECT * FROM salespeople
INNER JOIN sales
ON salespeople.Person_id = orders.SalesPerson_id;

Ciktisi soyle olacakti

PERSON_IDLASTNAMEFIRSTNAMEORDER_IDSALESPERSON_IDORDER_DATE
10001BozarVeli5001261000105/13/2003
10000YazarAli5001251000005/12/2003

İki tablonun satirlarini karsilastirdigimizda; 1002 ve 1003 id li kisiler  icin sales tablosunda sales order kaydı bulunmamaktadir. Salesperson tablosunda da 1004 id kisi icin kayit bulunmamaktadir. 1004 id li satis temsilcisi isten ayrilmis ve kaydi silinmis olabilir. Bu durumda her iki tablodaki ortak person id icin bulunan kayitlardan select de verilen sutunlar sonuc olarak getirilmis olur.