Anasayfa / SQL SERVER / outer ve cross join

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

 

 

 

 

Ayrıca Buna Bakabilirsiniz

SQL 2016 Database mail göndermiyor

SQL 2016 Database mail göndermiyor SQL 2016 Database mail göndermiyor problemi ve çözümü için makaleyi …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir