2010-04-27 32 views

cevap

50

istediğim
result1: 
'a' 
'b' 
'c' 

result2: 
'b' 
'c' 

eksi result2 tarafından result1 içinde ne kadar:

Ben (her sadece bir sütun) bir sonuç kümesine sahip Say

Sonuç1 - sonuç2 gerçekleştirmek için, sonuç1 ile sonuç2'yi ve sonuç1'de var olan çıktı öğelerini birleştirebilirsiniz. Bir dizi fark değildir ve result2 çıktı öğeler result1 bulunmayan olmaz

SELECT DISTINCT result1.column 
FROM result1 LEFT JOIN result2 ON result1.column = result2.column 
WHERE result2.column IS NULL 

Not: Örneğin. çıkartma ayarlanmıştır.

Ayrıca bakınız: http://www.bitbybit.dk/carsten/blog/?p=71

+0

Açıklamalarınız için teşekkürler, MySQL ile çalıştığımdan beri bir süre geçti. –

9

ne hakkında result2 olmayan result1 şeyler, isterseniz:

SELECT distinct result1 
FROM t1 
WHERE result1 NOT IN (select distinct result2 from t2); 

Veya:

SELECT distinct result 
from t1 t 
where NOT EXISTS (select 1 from t2 where result2 = t.result1) 

NOT: result1 bir alt kümesidir eğer result2'dan sonra yukarıdaki sorgular boş bir set getirecektir ('te size bir şey göstermeyeceklerdir, result1'da bulunmazlar; bu nedenle bunlar fark ayarlanmaz, ancak yararlı olabilir (muhtemelen dış birleştirmeden daha verimlidir).

İlgili konular