Sql Except Kullanımı

Posted by

Merhaba arkadaşlar, bu yazımda sizlere Sql Except Kullanımı konusundan bahsedeceğim.

Sql Except, iki sonuç arasındaki farkları bulmamızı sağlar. Yazdığımız iki sorgu sonucuna göre karşılaştırma yaparak ilk tabloda olan ama ikinci tabloda olmayan kayıtları bize döndürür. Böylelikle iki tablo arasındaki ya da iki sorgu arasında gelen kayıtların farkını bulabiliriz.

Örneğin bir adet Siparişler(Orders) tablomuz ve bir adet de Müşteriler(Customers) tablomuz bulunduğunu düşünelim. Yazdığımız iki sorguyu Except ile kullanarak iki sorgudan dönen kayıtlar için farkları bulmak istiyoruz. Bunu yapabilmek için aşağıdaki gibi kullanım sağlayabiliriz.

İlk sorgumuz;

SELECT  C.Id, FirstName, O.OrderDate, O.TotalAmount
   FROM Customers C
   LEFT JOIN Orders O
   ON C.Id = O.CustomerId

İlk sorgumuzdan dönen sonuç;

İkinci sorgumuz;

SELECT  C.Id, FirstName, O.OrderDate, O.TotalAmount
   FROM Customers C
   RIGHT JOIN Orders O
   ON C.Id = O.CustomerId

İkinci sorgumuzdan dönen sonuç;

Şimdi de Except kullanımı ile iki sorgumuzu birleştiriyoruz.

SELECT  C.Id, FirstName, O.OrderDate, O.TotalAmount
   FROM Customers C
   LEFT JOIN Orders O
   ON C.Id = O.CustomerId
EXCEPT
   SELECT  C.Id, FirstName, O.OrderDate, O.TotalAmount
   FROM Customers C
   RIGHT JOIN Orders O
   ON C.Id = O.CustomerId

İki sorgumuzu birleştirdik ve bunu çalıştırdığımızda aşağıdaki sonuç ile karşılaşırız.

Görüldüğü gibi Except kullanımını gerçekleştirdiğimizde ilk sorgumuzda olan fakat ikinci sorgumuzda olmayan kaydı bize döndürdü. Except kullanarak farkları bulabilir ve listeleyebiliriz.

Umarım faydalı olur.

Bir sonraki yazıda görüşmek üzere…

Leave a Reply

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