Join devam

Bunun için IlkDB adlı database’i restore ediniz.
https://www.fethimurat.com/blog/wp-content/uploads/2010/08/JoinDB.zip

-- kategoriler tablosu ve urunler tablosu
select * from Kategoriler
select * from Urunler

-- tüm kategorileri listeleyin eğer varsa ürünlerinin adlarını da listeleyin

select k.KategoriAdi,u.UrunAdi
from Kategoriler k
left join Urunler u on k.KategoriID=u.KategoriID

-- tüm ürünleri ve varsa dahil oldukları kategorilerinin adlarını da getirin
select u.UrunAdi,k.KategoriAdi
from Kategoriler k
right join Urunler u on u.KategoriID=k.KategoriID

-- tedarikciler tablosu oluşturalım
create table Tedarikciler
(
   TedarikciID int primary key identity(1,1),
   FirmaAdi varchar(50)
)
go

insert into Tedarikciler values('TedA')
insert into Tedarikciler values('TedB')
insert into Tedarikciler values('TedC')

alter table Urunler
add TedarikciID int references Tedarikciler (TedarikciID)

select * from Tedarikciler
select * from Urunler

-- kategorisi olmayan ürünün tedarikcisi verildi
update Urunler set TedarikciID=1
where KategoriID is null

-- br ürün daha tedarikcisiyle birlikte kullanılacak
update Urunler set TedarikciID=3
where UrunAdi like '%ace%'

select * from Urunler

-- tüm tedarikcileri varsa getirdikleri ürünlerin adlarını ve varsa o ürünlerin dahil olduğu kategori adlarını listeleyin
select t.FirmaAdi,u.UrunAdi,k.KategoriAdi
from Tedarikciler t
left join Urunler u on u.TedarikciID=t.TedarikciID
left join Kategoriler k on k.KategoriID=u.KategoriID

-- urunleri ve kategori isimlerini getirirken varsa urunlerin tedarikci firmasını da getirin
select k.KategoriAdi,u.UrunAdi,t.FirmaAdi
from Kategoriler k
join Urunler u on u.KategoriID=k.KategoriID
left join Tedarikciler t on t.TedarikciID=u.TedarikciID

-- tüm kategorileri ve tüm ürünleri getirin eğer varsa ürünlerin tedarikci firmasını da getirin
-- full join
select k.KategoriAdi,u.UrunAdi,t.FirmaAdi
from Kategoriler k full join 
Urunler u on u.KategoriID=k.KategoriID
left outer join Tedarikciler t on t.TedarikciID=u.TedarikciID

-- tüm eşleşen urunleri ve urunleri getiren tedarikcilerin adları yanında tüm kategorileri getirin
select u.UrunAdi,t.FirmaAdi,k.KategoriAdi
from Urunler u
join Tedarikciler t on t.TedarikciID=u.TedarikciID
full join Kategoriler k on k.KategoriID=u.KategoriID

--  eğer tüm tedarikciler tüm ürünleri getirebiliyor olsaydı tüm secenekleri listeleyelim
select u.UrunAdi,t.FirmaAdi
from Tedarikciler t
cross join Urunler u