Oracle PL/SQL: OUTER JOIN Ne zaman kullanilir?

Bir onceki yazimizda Inner Join'den bahsetmistik. Left Outer Join veya Left Join ile devam edelim. Bu join tipi sol tarafta verilen tablodaki tum satırları getirirken sag tarafta kalan tablo icin sadece JOIN kosulunu saglayanları getirir. Ornekle somutlastırırsak eger; Araba ve bisiklet kiralama yapan bir sirketin siparis takip programinda cars, customers, bikes ve rentals isimli 4 adet tablo bulunmakta...Rentals tablosu musterinin hangi demirbasi ne zaman kiraladıgını gosteren bir gecmisi, digerleri de musteri ve envanter detaylarını tutan tablolardir.

id license_plate purchase_date
100 34ZA700 06/06/2000
101 34ET800 10/06/2000
id name
10 Ali
11 Veli
12 Recep
id car_id bike_id customer_id rental_date
1 100   10 07/08/2000
2   202 10 08/09/2000

 

SELECT * FROM customers
INNER JOIN rentals on (rentals.customer_id = customers.customer_id) 
LEFT JOIN cars on (car_id = rentals.car_id)
WHERE customers.customer_id = 10

Ilk once INNER JOIN ile customers ve rentals tablolari birbirine baglanarak kesisim kumesi alinmistir. Yani customer_id 10 icin customers ve rentals tablosundaki ortak satirlar getirilmistir. Asagidaki tabloda goruldugu uzere tum satirlar istendigi icin soldan saga sirasiyla customers ve rentals tablolarinin satirlari siralanmistir. Eger customer_id 10 icin hem arac hem de bisiklet kiralama gecmisini getirmek isteseydik INNER JOIN ile bunu yapamazdik.

id name id CAR_ID bike_id customer_id rental_date car_id license_plate purchase_date
10 Ali 2 - 202 10 08/09/2000 - - -
10 Ali 1 100 - 10 07/08/2000 100 34ET700 06/06/2000
10 Ali 1 100 - 10 07/08/2000 101 34ET800 10/06/2000