Bu kodda ne yanlış var? – 6
Bir kitabevi için web uygulaması geliştiriyorsunuz. Yaptığınız analize dayanarak, uygulamanın veritabanını aşağıdaki gibi tasarladınız;

Veritabanı modelinize göre, her kitabın sıfır veya daha fazla yazarı olabilir, her yazarın sıfır veya daha fazla kitabı olabilir.
Toplam Kitap Adedi ve Toplam Yazar Adedi sorularına cevap verebilmek için, aşağıdaki sorguyu yazdınız;
SELECT DISTINCT COUNT(Yazarlar.YazarID) AS ToplamYazarAdedi, COUNT(Kitaplar.KitapID) AS ToplamKitapAdedi FROM Yazarlar FULL JOIN YazarKitaplari YK ON Yazarlar.YazarID = YK.YazarID FULL JOIN Kitaplar ON YK.KitapID = Kitaplar.KitapID
Problem, rakamların beklediğinizden yüksek çıkması.
Sizce problem nedir ve nasıl düzeltebiliriz?
İlgili diğer başlıklar:
Toplam Kitap Adedi ve Toplam Yazar Adedi isteniyorsa Kitaplar ve Yazarlar tabloları ayrı ayrı sorgulanabilir.
Eğer istenen En Az Bir Yazarı Olan Kitap Adedi ve En Az Bir Kitabı Olan Yazar Adedi ise o zaman Kitaplar ve Yazarlar tabloları ayrı ayrı YazarKitaplari tablosu ile birleştirilerek sorgulanabilir.
aşağıdaki sorguyla istediğin sonucu alırsın;
“Full join” heriki tablonun eşleşip eşleşmediğine bakmadan direk heriki tabloyuda getirir. bunun yerine inner left veya rigth kullanmanız gerekmektedir.