假设有一个表对应有两个字段Phones (PhoneNumber , FileName),表示number在哪个file中:
PhoneNumber FileName
111   file1
222   file1222   file2333   file3111   file4
111   file4
222   file4
555   file4
555   file4
666   file4我希望写一条SQL语句,实现对file4的两个功能:
1: 如果file4文件中有重复的number,只保留一条;
2: 如果file4文件中的number和file1 file2 file3 文件中的number重复,则将他们从file4中删除。所以上面的示例中预想得到的结果是:
PhoneNumber fileName
555         file4
666         file4我自己的实现方法是这样的:
select Distinct PhonesA.PhoneNumber from Phones as PhonesA where PhonesA.FileName = 'file4' and PhonesA.PhoneNumber not in (select PhonesB.PhoneNumber from Phones as PhonesB where PhonesB.FileName <> 'file4');这个方法实现起来没有问题,但是一到数据量比较大的时候,电脑就出现了无相应的状况,所以希望求一条效率比较高的SQl语句(我用的是Access数据库!)