SQL ile İki Tablonun Kayıtlarının Karşılaştırılması

SQL Server da iki tablo arasındaki farkların ve benzerliklerin bulunabilmesi için EXCEPT ve INTERSECT kelimeleri kullanılır, aynı işlemi yapabilmek için join ifadelerindende faydalanılabilir. Bu makalemizde EXCEPT ve INTERSECT nasıl karşılaştırma yapılacağın göstereceğiz.

EXCEPT kullanımı:


SELECT
Etiket='Tablo1 de bulunan fakat Tablo2 de bulunmayan kayıtlar', *
FROM
(
  SELECT * FROM Tablo1
    EXCEPT
  SELECT * FROM Tablo2
) x
UNION ALL
SELECT
Etiket='Tablo2 de bulunan fakat Tablo1 de bulunmayan kayıtlar', *
FROM
(
  SELECT * FROM Tablo2
   EXCEPT
  SELECT * FROM Tablo1
) y

INTERSECT kullanımı:

Her iki tablodada ortak olarak bulunan kayıtları bulalım
SELECT * FROM Tablo1
  INTERSECT
SELECT * FROM Tablo2


-- Sonuç : (10 row(s) affected)

Tablolar arasındaki kayıt farklılıklarını bulmak için NOT EXIST veya LEFT JOIN ifadelerinide kullanabiliriz

NOT EXIST Yöntemi

SELECT * FROM Tablo2 p1 
WHERE NOT EXISTS(
SELECT * FROM Tablo1 p2 
WHERE p2.ID = p1.ID)

LEFT JOIN Yöntemi

SELECT * FROM Tablo2 p1
LEFT OUTER JOIN Tablo1 p2
  ON p2.ID = p1.ID
WHERE p2.ID IS NULL

Erdoğan CiN

1991 yılında Denizli'nin Çameli ilçesinde dünyaya geldi. İlkokulu memleketimde, liseyi Acıpayam'da tamamladı. Mehmet Akif Ersoy Üniversitesi'nde Bilgisayar Programcılığı bölümünü bitirdikten sonra Entuğ Spor Dünyası' nda E-Ticaret Uzmanı olarak işe başladı, şuan Abiyefon' da Web Yazılım Geliştiricisi olarak çalışmaya devam etmekteyim.

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.