我对sql很陌生,所以请耐心等待。我有两个名为 datamig1
和 vascuproimagefile
的表。我想将datamig1.imagefile
与vascuproimagefile.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
)