SQL VE TSQL DERS 21: DISTINCT, EXISTS, NOT EXISTS KULLANIMI

Adsız

-- Şimdi bir örnekle kitabı olan ve olmayan yazarları distinct exists ve not exists
-- ifadelerini kullanarak listeleyeceğiz(kitabı olmayan yazar ifadesi mantıken saçma
-- (ama amaç mantığı kavramak bence :) )

select yazarAdSoyad from yazar,kitap where yazarNo=yazarId

-- kodunu listelediğimizde yazarların isimlerini kitap sayıları kadar listeler
-- bunu tek kayıda düşürmenin çeşitli yolları var biride distinct ifadesidir.

select distinct yazarAdSoyad from yazar,kitap where yazarNo=yazarId

-- ifadesi ile kitabı olan yazarlar tek tek listelenir.

/*
onun yanı sıra birde exists ifadesi var

exists ifadesi kullanıldığında, alt sorguda istenilen şartların yerine getirildiği
durumlarda üstteki sorgu değer üretir. not exists ise tam tersi olarak alt sorguda
istenilen şartların sağlanmadığı durumlarda üstteki sorgu değer üretir.
*/

select yazarAdSoyad from yazar where
exists
(select kitapAd from kitap where yazarNo=yazarId)

-- kitabı olmayan yazarlar içinde not' lı biçimde yazabiliriz.

select yazarAdSoyad from yazar where
not exists
(select kitapAd from kitap where yazarNo=yazarId)