比如 有表 A1,B1,C1,D1 其中A1中包含了 B1,C1,D1中的所有数据,现要删除A1中不包含在B1,C1,D1中的数据,也就是 A1-(B1+C1+C1+D1)
几个表中有2个主键都相同
sql中如何实现 以一个表为准与3个以上表比对删除不需要的数据?
答案:3 悬赏:40 手机版
解决时间 2021-02-04 16:46
- 提问者网友:嘚啵嘚啵
- 2021-02-03 19:08
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-02-03 20:29
假如这四个表有相同的字段col1,col2,col3
select A1.col1,A1.col2,A1.col3 from A1,
(select col1,col2,col3 from B1
union all
select col1,col2,col3 from C1
union all
select col1,col2,col3 from D1) AS E1
where A1.col1<>E1.col1 or A1.col2<>E1.col2 or A1.col3<>E1.col3
字段要多,你也就多加几条,类似这么写吧
-------补充-------
几个表的结构一样吗?
要是字段少,你就不要把 or A1.col3<>E1.col3 写上就好了,前边select A1.*
select A1.* from A1,
(select col1,col2,col3 from B1
union all
select col1,col2,col3 from C1
union all
select col1,col2,col3 from D1) AS E1
where A1.col1<>E1.col1 or A1.col2<>E1.col2
select A1.col1,A1.col2,A1.col3 from A1,
(select col1,col2,col3 from B1
union all
select col1,col2,col3 from C1
union all
select col1,col2,col3 from D1) AS E1
where A1.col1<>E1.col1 or A1.col2<>E1.col2 or A1.col3<>E1.col3
字段要多,你也就多加几条,类似这么写吧
-------补充-------
几个表的结构一样吗?
要是字段少,你就不要把 or A1.col3<>E1.col3 写上就好了,前边select A1.*
select A1.* from A1,
(select col1,col2,col3 from B1
union all
select col1,col2,col3 from C1
union all
select col1,col2,col3 from D1) AS E1
where A1.col1<>E1.col1 or A1.col2<>E1.col2
全部回答
- 1楼网友:佘樂
- 2021-02-03 22:06
--先添加
insert into c表(tel) (select b表.tel from a表 inner join
b表 on a表.tel = b表.tel)
--后删除
delete from b表 where (select count(tel) from a表 where a表.tel = b表.tel) > 0
- 2楼网友:天凉才是好个秋
- 2021-02-03 20:55
SQLSERVER为例,
+ 用 union 来连接
-的话用 inters。。。函数名忘了。可以按帮助索引
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯