用A表,去更新B表
VFP 9.0 + SQL
现有SQL表A,记录如下
dep_id depart_id
001 12
002 12
003 15
003 19
002 39
现有SQL表B,记录如下
dep_id depart_id biaoji
002 12 1
003 15 0
003 19 1
002 19 1
009 20 1
010 25 1
用A表的记录,去更新B表,要求如下:
A表里dep_id记录里有的,而B表里dep_id无此记录,则复制到B表去(举例:A表有001,B表没有,则将001那一行,复制到B表去)
A表里depart_id记录里有的,而B表里depart_id无此记录,则复制到B表去(举例:A表有39,B表没有,则将39那一行,复制到B表去)
B表dep_id里面有,而A没有.则删除B表里面的相应记录 (如:010那一行,B表有,而A表没有,则删除B表那一行记录)
B表depart_id里面有,而A没有.则删除B表里面的相应记录 (如:25那一行,B表有,而A表没有,则删除B表那一行记录)
我自己琢磨出来的命令如下:
insert into 表B (dep_id depart_id) select dep_id depart_id from 表A where dep_id not in (select dep_id from 表B)
insert into 表B (dep_id depart_id) select dep_id depart_id from 表A where depart_id not in (select depart_id from 表B)
DELETE from 表B WHERE 表B.user_id NOT in (select distinct user_id FROM 表A)
DELETE from 表B WHERE 表B.depart_id NOT in (select distinct depart_id FROM 表A)
我也没有把握我的命令,是不是全部正确.
但是,我运行结果是:所有数据,都双倍出现了. 这肯定是错误的.
错在哪?我也迷糊了
请老师指导