Ana içeriğe atla

SQL INNER JOIN ve OUTER JOIN: Temel Farklar

Veritabanı yönetimi becerilerinizi geliştirmek için örnekler ve görsellerle SQL INNER JOIN ve OUTER JOIN'i anlayın.
Güncel 16 Nis 2026  · 4 dk. oku

Bu eğitimde, SQL INNER JOIN ile OUTER JOIN arasındaki farkı açıklayıp örneklerle göstereceğim. Bu konuyu çözdükten sonra, Joining Data in SQL kursumuzu alabilirsiniz; bu kursta SELF JOIN ve CROSS JOIN gibi ilginç başka birleşimler ile küme kuramı gibi daha geniş fikirler de ele alınır.

Hızlı Yanıt

INNER JOIN, ortak bir sütuna göre tablolar arasındaki yalnızca eşleşen satırları döndürür ve eşleşmeyen satırları hariç tutar. Örneğin aşağıdaki sorgu, yalnızca eşleşme olduğunda siparişleri müşteri ayrıntılarıyla birlikte gösterir.

-- Inner Join: Returns only matching rows from both tables
SELECT o.OrderID, c.CustomerName
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;

OUTER JOIN, eşleşen satırların yanı sıra bir veya her iki tablodaki eşleşmeyen satırları da içerir. Aşağıdaki sorgu, siparişi olmayanlar da dahil olmak üzere tüm müşterileri döndürür.

-- Left Outer Join: Returns all rows from Customers and matching rows from Orders
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;

SQL INNER JOIN ve OUTER JOIN'e Yakından Bakış

Şimdi SQL INNER JOIN ve OUTER JOIN'i tek tek daha yakından inceleyelim. Her birine bakarken aşağıdaki iki tabloyu göz önünde bulundurun:

Çalışanlar tablosu örneği.

Çalışanlar tablosu örneği. Görsel: Yazar.

Departmanlar tablosu örneği.

Departmanlar tablosu örneği. Görsel: Yazar.

INNER JOIN Nasıl Çalışır

Bir INNER JOIN, belirtilen koşula göre her iki tabloda da eşleşmesi olan satırları getirir. 

Aşağıdaki sorgu employee_id, demployee_name, department_name ve salary sütunlarını seçer ve ardından department_id var olan satırları döndürür.

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

SQL INNER JOIN kullanılarak birleştirilmiş tablo örneği.

SQL INNER JOIN kullanılarak birleştirilmiş tablo örneği. Görsel: Yazar.

OUTER JOIN Nasıl Çalışır

OUTER JOIN, kullanılan OUTER JOIN türüne bağlı olarak bir veya her iki tablodan eşleşmeyen satırları içerir.

LEFT OUTER JOIN (LEFT JOIN)

LEFT OUTER JOIN, sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtları döndürür. Eşleşme yoksa, sağ tablodan gelen sütunlar için NULL değerleri döndürülür.

Aşağıdaki örnek, employees tablosundaki tüm kayıtları, eşleşmeyenlerin olduğu durumlarda bile getirir. Çalışanlar için eksik department_name değeri NULL olarak döndürülür.

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

SQL left outer join kullanılarak birleştirilen tablo örneği

SQL left outer join kullanılarak birleştirilen tablo örneği. Görsel: Yazar.

LEFT JOIN ve LEFT OUTER JOIN, SQL'de birbirinin yerine kullanılır; her ikisi de sol tablodan tüm satırları ve sağ tablodan eşleşen satırları getirir.

RIGHT OUTER JOIN (RIGHT JOIN)

RIGHT OUTER JOIN, sağ tablodaki tüm kayıtları ve sol tablodaki eşleşen kayıtları döndürür. Soldaki eşleşmeyen satırlar için NULL döner.

Aşağıdaki sorgu, eşleşen çalışanların olmadığı durumlarda bile departments tablosundaki tüm kayıtları döndürür.

-- Get all departments, even those without employees
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;

SQL Right outer join kullanılarak birleştirilen tablo örneği.

SQL Right outer join kullanılarak birleştirilen tablo örneği. Görsel: Yazar.

FULL OUTER JOIN

FULL OUTER JOIN, sol ve sağ dış birleşimlerin sonuçlarını birleştirir. Her iki tablodan da tüm kayıtları döndürür ve eşleşme olmayan yerlerde NULL değerlerini doldurur.

Aşağıdaki sorgu, eşleşmeyen satırlar olsa bile employees ve departments tablolarındaki tüm kayıtları döndürür.

-- Combine all employees and departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
FULL JOIN departments
ON employees.department_id = departments.department_id;

SQL Full outer join kullanılarak birleştirilen tablo örneği.

SQL Full outer join kullanılarak birleştirilen tablo örneği. Görsel: Yazar.

INNER JOIN vs. OUTER JOIN: Temel Farklar

INNER JOIN ve OUTER JOIN, tablolar birleştirilirken eşleşmeyen satırları ele alış biçimleri açısından temelde farklılık gösterir. Bu farkları anlamak, veritabanı sorgularınızda doğru birleşim türünü seçmek için önemlidir. Bu farkları karşılaştıralım.

INNER JOIN ne döndürür

INNER JOIN, yalnızca her iki tabloda da eşleşen değerlere sahip satırları döndürür. Bu tür birleşim, her iki veri kümesinde de ihtiyacınız olan veriler olduğunda kullanılır.

Aşağıdaki sorgu, employees kayıtlarını departments tablosundaki eşleşen satırlarla birlikte getirir.

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

SQL Inner join kullanılarak birleştirilen tablo örneği.

SQL INNER JOIN kullanılarak birleştirilen tablo örneği. Görsel: Yazar.

OUTER JOIN ne döndürür

OUTER JOIN, kullanılan OUTER JOIN türüne bağlı olarak bir veya her iki tablodan eşleşmeyen satırları içerir. Örneğin, LEFT OUTER JOIN sol tablodan tüm satırları ve sağ tablodan eşleşen satırları döndürür. Sağ tablodan eşleşmeyen satırlarda NULL değerler bulunur.

Aşağıdaki sorgu, departmanı olmayanlar da dahil olmak üzere çalışan kayıtlarını getirir.

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

SQL Left outer join kullanılarak elde edilen veriler örneği.

SQL LEFT OUTER JOIN kullanılarak elde edilen veriler örneği. Görsel: Yazar.

SQL INNER JOIN ve OUTER JOIN Ne Zaman Kullanılır

INNER JOIN ve OUTER JOIN, veri alma senaryolarındaki pratik kullanım durumları açısından da farklılık gösterir.

INNER JOIN ne zaman kullanılır

INNER JOIN, iki tablodan yalnızca kesişen veriye ihtiyaç duyduğunuzda en etkilidir. Örneğin, hem ürün hem de satış tablolarında eşleşen kayıtlar olduğunda, satılan ürünleri bulmak için satış verilerini analiz ederken INNER JOIN kullanabilirsiniz.

OUTER JOIN ne zaman kullanılır

OUTER JOIN, eşleşmeyen satırlar da dahil olmak üzere eksiksiz bir veri kümesi döndürmeniz gerektiğinde uygundur. Örneğin, departman ataması olmayanlar da dahil olmak üzere tüm çalışanları ya da çalışanı olmayanlar da dahil olmak üzere tüm departmanları gösteren bir rapor üretirken.

Sonuç

INNER JOIN ve OUTER JOIN arasındaki farkı anlamak, verimli sorgular yazmada önemlidir. Bu teknikleri öğrenmek, daha hızlı veri alma için sorgu optimizasyonunu geliştirmenize de yardımcı olur. Veritabanı yönetiminde daha fazla beceri edinmek için pratik yapmaya devam etmenizi öneririm.

İyi bir veri analisti olmak için Associate Data Analyst in SQL kariyer yolumuzu denemenizi öneririm. Reporting in SQL kursumuz da etkili veri sunumu için karmaşık raporlar ve gösterge tabloları oluşturma konusunda yetkinleşmenize yardımcı olacaktır. SQL becerilerinizi sergilemeyi içeren bir mülakata hazırlanıyorsanız, hazırlığa destek olması için blog yazımız 20 Top SQL Joins Interview Questions’a göz atmanızı öneririm.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.

SQL INNER JOIN ve OUTER JOIN SSS

SQL'de INNER JOIN ile OUTER JOIN arasındaki fark nedir?

INNER JOIN her iki tablodan yalnızca eşleşen satırları döndürürken, OUTER JOIN eşleşmeyen satırları da içerir ve karşılık gelen veri bulunmadığında boşlukları NULL ile doldurur.

SQL'de INNER JOIN'i ne zaman kullanmalıyım?

Yalnızca her iki tabloda da eşleşen değerlere sahip satırları almak istediğinizde INNER JOIN kullanın.

SQL'de OUTER JOIN türleri nelerdir?

OUTER JOIN türleri LEFT OUTER JOIN, RIGHT OUTER JOIN ve FULL OUTER JOIN'dir.

SQL'de LEFT OUTER JOIN nasıl çalışır?

Left outer join, sol tablodan tüm satırları, sağ tablodan eşleşen satırları ve soldan eşleşmeyen satırları döndürür.

SQL'de FULL OUTER JOIN nedir?

FULL OUTER JOIN, her iki tablodan da tüm satırları, her birinden eşleşmeyen satırlar dahil olmak üzere döndürür.

Konular

DataCamp ile SQL öğrenin

Kurs

Data Manipulation in SQL

4 sa
317.1K
Master the complex SQL queries necessary to answer a wide variety of data science questions and prepare robust data sets for analysis in PostgreSQL.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow