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…