Self Join Nedir? — SQL Server

Ayşegül Yiğit
BilgeAdam Teknoloji
2 min readJun 12, 2022

Bir tablonun kendisiyle JOIN işlemine tutulmasına Self Join denir. Hiyerarşik verileri sorgulamak veya aynı tablodaki satırları karşılaştırmak için kullanışlıdır.

Self Join; inner join veya left join komutlarını kullanır. Self Join kullanan sorgu aynı tabloya başvurduğundan , sorgu içinde aynı tabloya farklı adlar atamak için alias kullanılır.

Alias kullanılmadan bir sorguda aynı tabloya birden fazla başvuru yapılmasının hataya yol açabilir.

  1. Hiyerarşik verileri sorgulamak için Self Join kullanma
Personel ve Yönetici Bilgileri Tablosu

Yöneticilerin hangi personellerden sorumlu olduğunu öğrenmek için, aşağıdaki sorguda gösterildiği gibi Self Joini kullanabiliriz.

SELECT

e.first_name + ‘ ‘ + e.last_name employee,

m.first_name + ‘ ‘ + m.last_name manager

FROM

sales.staffs e

LEFT JOIN sales.staffs m ON m.staff_id = e.manager_id

ORDER BY

manager;

Personellerin Bağlı Olduğu Yönetici Tablosu

2. Bir tablodaki satırları karşılaştırmak için Self Join kullanma

Aynı şehirde bulunan müşterileri bulmak için aşağıda yer alan Self Join sorgusunu kullanabiliriz.

SELECT

c1.city,

c1.first_name + ‘ ‘ + c1.last_name customer_1,

c2.first_name + ‘ ‘ + c2.last_name customer_2

FROM

sales.customers c1

INNER JOIN sales.customers c2 ON c1.customer_id > c2.customer_id

AND c1.city = c2.city

ORDER BY

city,

customer_1,

customer_2;

Aynı Şehirde Bulunan Müşteri Tablosu

--

--