日期:2014-05-17  浏览次数:20943 次

请教有难度的SQL语句
A表中有字段:
战盟名,盟主,战盟信息

B表中有字段:
战盟成员,战盟名,战盟等级

按程序原意,一个盟主它的名字,不单单要在A表中的 "盟主 "这个字段有记录,而且在B表中的 "战盟成员 "中也有记录.由于原来 "战盟名 "没有设置主键,导致在A表中出现了一些重复的战盟名,同时有一些盟主在B表 "战盟成员 "字段中并不存在.

现在要删除符合以下两个条件的数据:
1.在A表中战盟名重复的数据
2.在A表中盟主名在B表 "成员列表 "中不存在的数据.

------解决方案--------------------
删除重复项不是一条语言就可以得到的
select distinct * into temptablename from oldtablename
go

truncate table oldtablename
go

insert oldtablename
select * from temptablename
go

drop table temptablename
go
这是删除重复项
删除没有名的
delete from A where 盟主 not in (select 战盟成员 from B)