SQL Server 从列不相等的两个表中选择



我对sql很陌生,所以请耐心等待。我有两个名为 datamig1vascuproimagefile 的表。我想将datamig1.imagefilevascuproimagefile.imagefile进行比较,vascuproimagefile.thumbnail并返回彼此<>的修复物。我能够运行这个查询,了解它们彼此=的位置,它工作得很好,为什么它不能用于<>

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

有几种不同的方法可以做到这一点。 一种是使用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 
)

最新更新