9 Kasım 2014 Pazar

outer ve cross join

–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