SORU
16 Ocak 2010, CUMARTESİ


sql iki tablo arasındaki farklar dönüş için sorgu

İki tablo, SQL Server, bazı verileri kontrol etmek karşılaştırmak için çalışıyorum. Veri ya biri ya da diğeri her iki tablodan tüm satırları geri dönmek istiyorum. Özünde, tüm farklılıkları göstermek istiyorum. Böylece veri, Ad, Soyad ve Ürün üç adet kontrol etmem gerekiyor.

SQL için oldukça yeniyim ve bulduğum çözümleri çok komplike şeyler bitti gibi görünüyor. Null hakkında endişelenmenize gerek yok.

Böyle bir şeyi deneyerek başladım:

SELECT DISTINCT [First Name], [Last Name], [Product Name] FROM [Temp Test Data]
WHERE ([First Name] NOT IN (SELECT [First Name] 
FROM [Real Data]))

Ama sorun daha alarak geçiriyorum.

Teşekkürler!

DÜZENLEME:

@Cevap treaschf dayalı olan aşağıdaki sorgu bir varyasyon kullanmaya çalışıyorum:

SELECT td.[First Name], td.[Last Name], td.[Product Name]
FROM [Temp Test Data] td FULL OUTER JOIN [Data] AS d 
ON td.[First Name] = d.[First Name] AND td.[Last Name] = d.[Last Name] 
WHERE (d.[First Name] = NULL) AND (d.[Last Name] = NULL)

Ama d değil td en az 1 satır olduğunu öğrendiğimde 0 sonuçlar elde ediyorum.

DÜZENLEME:

Tamam, anladım sanırım. En azından test birkaç dakika içinde yeterince iyi iş gibi görünüyor.

SELECT [First Name], [Last Name]
FROM [Temp Test Data] AS td
WHERE (NOT EXISTS
        (SELECT [First Name], [Last Name]
         FROM [Data] AS d
         WHERE ([First Name] = td.[First Name]) OR ([Last Name] = td.[Last Name])))

Bu temelde bu benim test verileri içinde ne olduğunu bana söyleyecekdeğilbenim gerçek veri. Yapmam gereken şey için tamamen iyi olan.

CEVAP
16 Ocak 2010, CUMARTESİ


EĞER colum ile tablolar A B, hem C burada B 11 *tablo ama yok olan kayıtlar

SELECT A.*
FROM A
    LEFT JOIN B ON (A.C = B.C)
WHERE B.C IS NULL

Tek bir sorgu, bir tam bütün farklılıkları katılmak için, bu gibi kullanılmalıdır:

SELECT A.*, B.*
FROM A
    FULL JOIN B ON (A.C = B.C)
WHERE A.C IS NULL OR B.C IS NULL

Ne yapman gerektiğini biliyorsun, bu durumda, o zaman bir kayıt bulunabilir A ama ** 16 yaşında, daha sütunları olan gel B olacak NULL, ve benzer şekilde, hangi hediye B A sütun A olacaktır null.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fufko

    fufko

    27 ŞUBAT 2006
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012