Osman KURT

Kendime Not

SQL de İki Tabloyu Birbiriyle Merge'leme

Bu yazımda size elinize bulunan 2 tabloyu birbiyle mergeleme (birleştirme) olayından bahsedeceğim. Yalnız aynı olan verileri almamak şartıyla. Örneğin elinizde bir mail listeniz var ve bu mail listenize yeni veriler eklemek istiyorsunuz. Ama var olan listenizde yeni eklenecek olan maillerden var mı bilmek istiyorsunuz ve aynı verileri gereksiz yere saklamak istemiyorsunuz. İşte tamda burada merge olayı devrey giriyor çünkü tek tek kontrol etmeye kalkarsanız ve dolu bir veri listeniz varsa gerçekten bu çile haline gelebilir.

Sql de merge olayı kasıyormu?

Kısa söylemek gerekirse HAYIR. Insert yada update zamanından fazla bir zaman almıyor.

Kullanımı;

İlk olarak ben liste halindeki verilerimi bir adet DataTable'e yazdım. Daha sonra önüne "#" koyarak oluşturduğum temp tabloma DataTablemi kayıt ettiim. Bu arada # işareti koyarak sql'de oluşturduğum temp tablom connection close olduğu anda kendiliğinden kayboluyor haberiniz olsun. Daha sonra merge olayımız devreye giriyor. İstediğimiz koşuluda yazabiliyoruz aynı zamanda.

Benim temp tablomun adı A, asıl kayıt atacağım tablom da MailListesi olsun ve kodumuz alt kısım da mevcut,

 

MERGE MailListesi cm 
USING A ON cm.FirmaID = A.FirmaID and cm.Mail = A.Mail
WHEN NOT MATCHED THEN
       INSERT (FirmaID,Mail)
       VALUES (A.FirmaID,A.Mail);

 

Kısa zaman sonra ufak bir örnek uygulamayıda buaradan paylaşacağım.

Görüşmek üzere

Osman KURT
Yazılım Uzmanı

Yorumlar (1) -

  • yavuz

    5.12.2015 17:41:21 | Yanıtla

    merhaba   uyeler veri tabanı altında altı  tablom var.bunları üçü ile veri listeleme yapmak istiyorum.üç tablomun isimleri

    (uyeler,resimler,arkadaslar).  session ile  gelen rumuz bilgisine   bağlı olarak arkadaslar tablosundan sorgulama

    yaparak çıkan arkadas isimlerinin (rumuzlarının) resimler tablosundaki  anaresim sütunundaki ismi ve  uyeler

    tablosunda ki üye bilgilerini alarak listelemek istiyorum.(ekrana arkadaş rumuz bilgisini(arkadaslar),anaresim bilgisini(resimler),
    uye bilgilerini(uyeler) listelemek istiyorum.)nasıl  sorgu  yazabilirim.(asp,access,sql kullanıyorum.)

Loading