–outer join
–full outer join left ve right joninin görünümü birleştirir
–outer join kendi başına kullanilamaz
–ya left ya right yada full outer join yazmak zorundayız
select * from notlar
select * from dersler
select O.Adi,O.Soyadi,N.Notu
from Notlar N inner join Ogrenciler O
on O.OgrID=N.OgrID
–örneğin outer joinle yapılışı
select O.Adi,O.Soyadi,N.Notu
from Notlar N full outer join Ogrenciler O
on O.OgrID=N.OgrID
–örneğin right outer joinle yapılışı
select O.Adi,O.Soyadi,N.Notu
from Notlar N right outer join Ogrenciler O
on O.OgrID=N.OgrID
–örneğin left joinle yapılışı
select O.Adi,O.Soyadi,N.Notu
from Notlar N left outer join Ogrenciler O
on O.OgrID=N.OgrID
–notlar left joinde olduğu için notu olan öğrenciler gelecek
–left outer joinde ise bütün öğrenciler gelmiş
–notu olan öğrencilerin notu gözükmüş
–notu olmayanları da null göstermiş
–full outer join left outer ve right outer joinin görünümünü birleştirirken
–tekrarlı olan kayıtları getirmez
–left join = right outer join
–right join = left outer join
–inner join = full outer join
–full join left ve right joinin birleşimidir
–E1 de EmployeeID yi tutuyoruz
–E2 de ReportsTo yu tutuyoruz
–E1 tablosundaki EmployeeID,E2 tablosundaki ReportsTo ya eşit olcak
–yani alt kademedeki adamın kime rapor verdiğini gösteren sql cümlesi:
select E1.FirstName+ ‘ ‘ +E1.LastName as ‘Rapor Alanın Adı Soyadı’,
E2.FirstName+ ‘ ‘+E2.LastName as ‘Raporu Verenin Adı Soyadı’
from Employees E1 inner join Employees E2
on E1.EmployeeID = E2.ReportsTo
–cross join
–kartezyen çarpım yapar
–2 tablo arasında eşleştirme yapar
–cross joinde on ifadesi kullanılmaz
–olasılık hesaplarında kullanılır
select O.Adi,O.Soyadi,D.DersAdi
from Ogrenciler O cross join Dersler D
outer ve cross join
Hiç yorum yok:
Yorum Gönder