1

Konu: karşılaştırmada eşit olmayanı döndüren sorgu ?

a tablosu       b tablosu
----------      ------------
ahmet           ali
mehmet        mehmet
ali
ayşe


ahmet
ayşe

kayıtlarını döndüren sorguyu nasıl yapabilirim?

2

Re: karşılaştırmada eşit olmayanı döndüren sorgu ?

Asil istediginin bu kadar basit oldugunu sanmiyorum onun icin birden fazla yontem:

1) Bu senin istedigin ilk bakista

Visual Fox Pro
SELECT isim FROM aTablosu WHERE isim NOT in (SELECT isim FROM bTablosu) ;

union ;
SELECT isim FROM bTablosu WHERE isim NOT in (SELECT isim FROM aTablosu)


2) Nereden geldiklerini gosteren sekli:

Visual Fox Pro
SELECT isim, 1 as inTable ;

FROM aTablosu WHERE isim NOT in (SELECT isim FROM bTablosu) ;
union ;
SELECT isim, 2 as inTable ;
FROM bTablosu WHERE isim NOT in (SELECT isim FROM aTablosu)


3) Biraz degisik bir versiyon:

Visual Fox Pro
SELECT t1.isim as t1isim, t2.isim as t2isim ;

FROM aTablosu t1 ;
   full JOIN bTablosu t2 ON t1.isim == t2.isim ;
   WHERE t1.isim is null OR t2.isim is null


4) Aslinda isin icinde baska fieldlerin oldugunu ve primary key sabit iken diger fieldlerdeki degisikliklere gore 1'den fazla yazilmis kayitlari bulma:

Visual Fox Pro
SELECT * FROM t1 UNION SELECT * FROM t2 INTO CURSOR tmp

 
SELECT * FROM ;
tmp ;
WHERE pkid in ;
( SELECT pkid FROM tmp HAVING CNT(*) > 1 GROUP BY pkid )

3

Re: karşılaştırmada eşit olmayanı döndüren sorgu ?

müthişsin hocam sağolun