永发信息网

sql中如何实现 以一个表为准与3个以上表比对删除不需要的数据?

答案:3  悬赏:40  手机版
解决时间 2021-02-04 16:46
  • 提问者网友:嘚啵嘚啵
  • 2021-02-03 19:08
比如 有表 A1,B1,C1,D1 其中A1中包含了 B1,C1,D1中的所有数据,现要删除A1中不包含在B1,C1,D1中的数据,也就是 A1-(B1+C1+C1+D1)

几个表中有2个主键都相同
最佳答案
  • 五星知识达人网友:第四晚心情
  • 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
全部回答
  • 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。。。函数名忘了。可以按帮助索引
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯