2016-03-13 4 views
1

Я ОЧЕНЬ новичок в sql, поэтому, пожалуйста, несите меня. У меня есть две таблицы с именем datamig1 и vascuproimagefile. Я хочу сравнить datamig1.imagefile с vascuproimagefile.imagefile и vascuproimagefile.thumbnail и возвращает, что <> eachother. Я был в состоянии выполнить этот запрос для того, где они = друг друга, и она работала идеально, почему она не может работать для <>sql server выберите из двух таблиц, где числа не равны

select * from datamig1, vascuproimagefile where datamig1.ImageFile = vascuproimagefile.ImageFile; 
+1

Примеров данных и ожидаемые результаты помогут. – sgeddes

+0

Например, это тип данных, который находится в столбцах «00000AD0-15BB-489B-8935-4FB7FC14C50F», если это имя файла, которое в настоящее время находится в файле datamig1.image, не находится в файле vascuproimagefile.image или в файле vascuproimage.thumbnail. Я хочу, чтобы список имен файлов. –

ответ

2

Есть несколько различных способов сделать это. Один заключается в использовании outer join/null проверки:

select d.imagefile 
from datamig1 d 
    left join vascuproimagefile v on d.imagefile in (v.ImageFile, v.thumbnail) 
where v.imagefile is null and v.thumbnail is null 

Или вы могли бы использовать not exists:

select imagefile 
from datamig1 d 
where not exists (
    select 1 
    from vascuproimagefile v 
    where d.imagefile = v.imagefile or d.imagefile = v.thumbnail 
) 
+0

Большое спасибо, отлично работает! –

Смежные вопросы