PostgreSQL LEFT OUTER JOIN ya da LEFT JOIN

PostgreSQL LEFT OUTER JOIN ya da LEFT JOIN,PostgreSQL de left join adından da anlaşılacağı üzere sol tabloyu baz alan birleştirme işine yaran kavramdır.

ilk tablodaki kayıtlar tamamen listelenir. Eğer ilk tablodaki kayıtın karşılığı ikinci tabloda yoksa ikinci tablodaki değeri  boş olarak döner. Örneğin INNER JOIN yazımda  yaptığımız örnekte Gaziantep’i Sehirler tablosuna girmiştik fakat MeshurYiyecek tablosuna Gaziantep ile ilgili bir kayıt girmediğimiz için INNER JOIN’de listelenmemişti. Aynı sorguda INNER JOIN yazan yere LEFT JOIN ya da LEFT OUTER JOIN yazarak çalıştıralım.

SELECT s.sehirismi,my.yiyecekismi FROM sehirler as s LEFT JOIN meshuryiyecekler as my ON s.id=my.sehirid;

Yukarıda gördüğünüz gibi Gaziantep değeri geldi ve MeshurYiyecekler tablosundaki YiyecekIsmi kolonu ise herhangi bir kayıt olmadığı için null olarak geldi.

Bu sorguyu where koşulunda filtleyerek farklı ihtiyaçlarınızı karşılayabilirsiniz. Örneğin Sehir ismi girilen ama bu şehir ile alakalı meshur yiyeceği olmayan ya da girişi yapılmayan kayıtları listelemek istersek aşağıdaki sorguyu yazabiliriz.

SELECT s.sehirismi,my.yiyecekismi FROM sehirler as s LEFT JOIN meshuryiyecekler as my ON s.id=my.sehirid WHERE my.sehirid is null;

Loading