【SQL解惑】谜题18:广告信件
2017-12-12 22:46
501 查看
一、创建并插入数据
create table Consumers
(
con_name varchar(20) not null,
address varchar(10)not null,
con_id int not null,
fam int
)
insert into Consumers(con_name,address,con_id,fam)
values('Bob','A',1,null),
('Joe','B',3,null),
('Mark','C',5,null),
('Mary','A',2,1),
('Vickie','B',4,3),
('Wayne','D',6,null)
二、查询语句
1、解惑一
delete from Consumers
where fam is null
and (select COUNT(*)
from Consumers as c2
where c1.address = c2.address) > 1
2、解惑二
delete from Consumers
from Consumers as c1
where fam is null
and exists
(select *
from Consumers as c2
where c1.con_id <> c2.con_id
and c1.address = c2.address
and c2.fam is not null)
3、解惑三
delete from Consumers
from Consumers as c1
where c1.fam is null
and exists (select *
from Consumers as c2
where c2.fam = c1.con_id)
三、改进
select C1.*
from Consumers as c1
except
select C1.*
from Consumers as c1
where c1.con_id in (select fam
from Consumers as c3
where c3.address = c1.address)
由于语句的话只要筛选出需要删除的数据,然后再用except去反选即可。
create table Consumers
(
con_name varchar(20) not null,
address varchar(10)not null,
con_id int not null,
fam int
)
insert into Consumers(con_name,address,con_id,fam)
values('Bob','A',1,null),
('Joe','B',3,null),
('Mark','C',5,null),
('Mary','A',2,1),
('Vickie','B',4,3),
('Wayne','D',6,null)
二、查询语句
1、解惑一
delete from Consumers
where fam is null
and (select COUNT(*)
from Consumers as c2
where c1.address = c2.address) > 1
2、解惑二
delete from Consumers
from Consumers as c1
where fam is null
and exists
(select *
from Consumers as c2
where c1.con_id <> c2.con_id
and c1.address = c2.address
and c2.fam is not null)
3、解惑三
delete from Consumers
from Consumers as c1
where c1.fam is null
and exists (select *
from Consumers as c2
where c2.fam = c1.con_id)
三、改进
select C1.*
from Consumers as c1
except
select C1.*
from Consumers as c1
where c1.con_id in (select fam
from Consumers as c3
where c3.address = c1.address)
由于语句的话只要筛选出需要删除的数据,然后再用except去反选即可。
相关文章推荐
- 《Java解惑》系列——02字符谜题——谜题18:字符串奶酪(new String(byte [] b))
- SQL解惑-谜题32计算税收
- 【SQL解惑】谜题6:预订旅馆房间(待完善)
- 【广告算法工程师入门 18】机制设计-关键词拍卖与机制演变
- 【SQL解惑】谜题7:跟踪投资组合
- 【SQL解惑】谜题8:调度打印机
- 【SQL解惑】谜题11:工作顺序
- 【SQL解惑】谜题9:空座位
- 【SQL解惑】谜题12:索赔状态
- 【天池笔记】——IJCAI-18 阿里妈妈搜索广告转化预测
- 【SQL解惑】谜题10:社会保险号的工资
- 【SQL解惑】谜题13:教师
- java解惑之字符之谜(谜题18)
- 【SQL解惑】谜题14:电话
- 免费和开源的动图gif工具,没广告!效率高,体积小,精通18国语言,必备良品!!!
- jQuery18(小广告效果,动态创建表格)
- 邮件系统内部广告系统:广告模板信件中的宏定义
- 【SQL解惑】谜题15:找出最近两次工资
- 【SQL解惑】谜题19:销售冠军
- 【SQL解惑】谜题3:麻醉师谜题