多表联合查询删除,如何操作

时间:2020-12-08 00:26:58
有4个表,表TBL_ACCOUNT 表TBL_DROP 表TBL_PublicWarehouse 和表TBL_Warehouse
表TBL_ACCOUNT是帐号列表 结构如下  
 帐号      
FLD_ID
表TBL_DROP是帐号和人物列表 结构如下
  帐号     人物名字
FLD_ID   FLD_NAME
表TBL_PublicWarehouse 是记录帐号所有的资产 结构如下
  帐号    资产
FLD_ID  FLD_MONEY
表TBL_Warehouse是记录帐号里每个人物的资产 结构如下
  帐号     人物名字
FLD_ID   FLD_NAME

原始数据 表TBL_ACCOUNT里
FLD_ID
12345
223344
321123
表TBL_DROP
FLD_ID   FLD_NAME
12345      张三
223344     李大
321123     小王
789789     小张
889933     李二
表TBL_PublicWarehouse
FLD_ID  FLD_MONEY
12345     1000
223344     500
321123     300
789789     2000
889933     100
表TBL_Warehouse
FLD_ID   FLD_NAME
12345      张三
223344     李大
321123     小王
789789     小张
889933     李二

表TBL_ACCOUNT比 表TBL_DROP 表TBL_PublicWarehouse 和表TBL_Warehouse要少好多帐号,现在如何删除表TBL_DROP 表TBL_PublicWarehouse 和表TBL_Warehouse里多出的帐号和数据。谢谢







16 个解决方案

#1


delete b
  from tbl_account a left join tbl_drop b
    on a.fld_id=b.fld_id
   where b.fld_id is null

#2


delete a
 from tbl_drop a
  where not exists(select 1 from tbl_account where a.fld_id=fld_id)

#3


可以了.
结帖吧.
给我20

#4


抢那么快~~~
男人还是慢一点好~~~汗~~
沙发都没的搞了,帮着顶一下吧

#5


谢谢 我去试下

#6



delete from TBL_DROP
where FLD_ID not in(select FLD_ID from TBL_ACCOUNT)
go

delete from TBL_PublicWarehouse
where FLD_ID not in(select FLD_ID from TBL_ACCOUNT)
go

delete from TBL_Warehouse
where FLD_ID not in(select FLD_ID from TBL_ACCOUNT)
go

#7


忘记说了 表TBL_ACCOUNT 在SQL的 RXJHACCOUNT里

表TBL_DROP   表TBL_PublicWarehouse   和表TBL_Warehouse 在 SQL的RXJHGAME里

用上边的 命令 清除不了

#8


忘记说了   表TBL_ACCOUNT   在SQL的   RXJHACCOUNT里 

表TBL_DROP       表TBL_PublicWarehouse       和表TBL_Warehouse   在   SQL的RXJHGAME里 

用上边的   命令   清除不了
-------------------------
那把全名写上好了.

#9



SQL里的 RXJHACCOUNT里的表TBL_ACCOUNT 
RXJHGAME里的表TBL_DROP               表TBL_PublicWarehouse               和表TBL_Warehouse

#10


delete from tbl_drop
where not exists(select * from tbl_account where fld_id=tbl_drop.fld_id)

delete from tbl_publicwarehouse
where not exists(select * from tbl_account where fld_id=tbl_publicwarehouse.fld_id)

delete from tbl_warehouse
where not exists(select * from tbl_account where fld_id=tbl_warehouse.fld_id)

#11


delete  a
from RXJHGAME..tbldrop a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

delete a from RXJHGAME..tbl_publicwarehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

delete a from RXJHGAME..tbl_warehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

#12


我使用这个命令
delete  a
from RXJHGAME..tbldrop a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)显示
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'RXJHGAME..tbldrop' 无效。
把RXJHGAME..tbldrop a 改成RXJHGAME..tbl_drop 显示
服务器: 消息 207,级别 16,状态 3,行 1
列名 'fld_id' 无效。

#13


我的QQ 75387160 有哪位大哥或者能加下我的QQ 远程帮我看看

#14


第2 和第3 个命令都能用
就是第一个不能用
哪个大哥看看 第一句那里出错误了?帮我修改下 谢谢

#15


不能用的 命令是
 delete  a
from RXJHGAME..tbldrop a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)
提示  
服务器:   消息   208,级别   16,状态   1,行   1 
对象名   'RXJHGAME..tbldrop'   无效。 
把RXJHGAME..tbldrop   a   改成RXJHGAME..tbl_drop   显示 
服务器:   消息   207,级别   16,状态   3,行   1 
列名   'fld_id'   无效。 


可用的命令:
delete a from RXJHGAME..tbl_publicwarehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

delete a from RXJHGAME..tbl_warehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)
先谢谢cxmcxm 提供



#16


谢谢cxmcxm   大哥 是我搞错了
现在问题解决了 谢谢了

#1


delete b
  from tbl_account a left join tbl_drop b
    on a.fld_id=b.fld_id
   where b.fld_id is null

#2


delete a
 from tbl_drop a
  where not exists(select 1 from tbl_account where a.fld_id=fld_id)

#3


可以了.
结帖吧.
给我20

#4


抢那么快~~~
男人还是慢一点好~~~汗~~
沙发都没的搞了,帮着顶一下吧

#5


谢谢 我去试下

#6



delete from TBL_DROP
where FLD_ID not in(select FLD_ID from TBL_ACCOUNT)
go

delete from TBL_PublicWarehouse
where FLD_ID not in(select FLD_ID from TBL_ACCOUNT)
go

delete from TBL_Warehouse
where FLD_ID not in(select FLD_ID from TBL_ACCOUNT)
go

#7


忘记说了 表TBL_ACCOUNT 在SQL的 RXJHACCOUNT里

表TBL_DROP   表TBL_PublicWarehouse   和表TBL_Warehouse 在 SQL的RXJHGAME里

用上边的 命令 清除不了

#8


忘记说了   表TBL_ACCOUNT   在SQL的   RXJHACCOUNT里 

表TBL_DROP       表TBL_PublicWarehouse       和表TBL_Warehouse   在   SQL的RXJHGAME里 

用上边的   命令   清除不了
-------------------------
那把全名写上好了.

#9



SQL里的 RXJHACCOUNT里的表TBL_ACCOUNT 
RXJHGAME里的表TBL_DROP               表TBL_PublicWarehouse               和表TBL_Warehouse

#10


delete from tbl_drop
where not exists(select * from tbl_account where fld_id=tbl_drop.fld_id)

delete from tbl_publicwarehouse
where not exists(select * from tbl_account where fld_id=tbl_publicwarehouse.fld_id)

delete from tbl_warehouse
where not exists(select * from tbl_account where fld_id=tbl_warehouse.fld_id)

#11


delete  a
from RXJHGAME..tbldrop a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

delete a from RXJHGAME..tbl_publicwarehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

delete a from RXJHGAME..tbl_warehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

#12


我使用这个命令
delete  a
from RXJHGAME..tbldrop a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)显示
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'RXJHGAME..tbldrop' 无效。
把RXJHGAME..tbldrop a 改成RXJHGAME..tbl_drop 显示
服务器: 消息 207,级别 16,状态 3,行 1
列名 'fld_id' 无效。

#13


我的QQ 75387160 有哪位大哥或者能加下我的QQ 远程帮我看看

#14


第2 和第3 个命令都能用
就是第一个不能用
哪个大哥看看 第一句那里出错误了?帮我修改下 谢谢

#15


不能用的 命令是
 delete  a
from RXJHGAME..tbldrop a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)
提示  
服务器:   消息   208,级别   16,状态   1,行   1 
对象名   'RXJHGAME..tbldrop'   无效。 
把RXJHGAME..tbldrop   a   改成RXJHGAME..tbl_drop   显示 
服务器:   消息   207,级别   16,状态   3,行   1 
列名   'fld_id'   无效。 


可用的命令:
delete a from RXJHGAME..tbl_publicwarehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)

delete a from RXJHGAME..tbl_warehouse a
where not exists(select * from RXJHACCOUNT..tbl_account where fld_id=a.fld_id)
先谢谢cxmcxm 提供



#16


谢谢cxmcxm   大哥 是我搞错了
现在问题解决了 谢谢了