sql根据一个表的条件进而删除另外几个表中的相关数据。用变量可以解决吗?
RT.本人对sql只知道皮毛,但眼下有个坚巨的任务。手工要删几个小时。问题如下。我在一个数据库中一个表中有我要删除指定的条件。如A表中有A1A2A3列。我要删除的是A3=...
RT.
本人对sql只知道皮毛,但眼下有个坚巨的任务。手工要删几个小时。
问题如下。
我在一个数据库中一个表中有我要删除指定的条件。如 A表中有 A1 A2 A3列。
我要删除的是A3=值为Y所对应的数据。而通过A3又没直接跟其它表挂钩,挂钩的只是其对应的A1。
我要怎么操作才能通过查询出A3=Y 所对应的A1 去删除其它 B,C,D,E,F表中所含A1的数据。。
求详细方法。本人真小白一只。万分感谢.
不好意思,我正准备按你们的是。可我现在发现的是。
A3=Y 只有在B 这个表里有。。
整理下。
就是第1个条件: A表中 A3 Lint Y% 查出对应的A1
再过通A1在 B表里 找到相对应的B1
然后再通过B1 去删除 B,C,D,E,F表中所包含B1的所有数据。不是表。 展开
本人对sql只知道皮毛,但眼下有个坚巨的任务。手工要删几个小时。
问题如下。
我在一个数据库中一个表中有我要删除指定的条件。如 A表中有 A1 A2 A3列。
我要删除的是A3=值为Y所对应的数据。而通过A3又没直接跟其它表挂钩,挂钩的只是其对应的A1。
我要怎么操作才能通过查询出A3=Y 所对应的A1 去删除其它 B,C,D,E,F表中所含A1的数据。。
求详细方法。本人真小白一只。万分感谢.
不好意思,我正准备按你们的是。可我现在发现的是。
A3=Y 只有在B 这个表里有。。
整理下。
就是第1个条件: A表中 A3 Lint Y% 查出对应的A1
再过通A1在 B表里 找到相对应的B1
然后再通过B1 去删除 B,C,D,E,F表中所包含B1的所有数据。不是表。 展开
展开全部
查出A3='Y'的A1
select A1 from A where A3='Y'
这里就找出A3='Y'的所有A1,在通过这个删除其他表,如:
delete B
where B.A1 in
(
select A1 from A where A3 = 'Y'
)
这里B.A1是表B的A1列和表A的A1列对应的,这样就删除了,其他表也一样
select A1 from A where A3='Y'
这里就找出A3='Y'的所有A1,在通过这个删除其他表,如:
delete B
where B.A1 in
(
select A1 from A where A3 = 'Y'
)
这里B.A1是表B的A1列和表A的A1列对应的,这样就删除了,其他表也一样
更多追问追答
追问
谢谢你。麻烦再帮我看一下。
追答
delete C
where C.B1 in
(
select B1 from B
where B.A1 in
(
select A1 from A where A3 like 'Y%'
)
)
展开全部
use 对应的数据库名
delete from B where A1 in (select A1 from A where A3='Y')
delete from C where A1 in (select A1 from A where A3='Y')
delete from D where A1 in (select A1 from A where A3='Y')
delete from E where A1 in (select A1 from A where A3='Y')
delete from F where A1 in (select A1 from A where A3='Y')
--你在sql的查询分析其中 执行这些sql语句即可
delete from B where A1 in (select A1 from A where A3='Y')
delete from C where A1 in (select A1 from A where A3='Y')
delete from D where A1 in (select A1 from A where A3='Y')
delete from E where A1 in (select A1 from A where A3='Y')
delete from F where A1 in (select A1 from A where A3='Y')
--你在sql的查询分析其中 执行这些sql语句即可
追问
谢谢你。麻烦再帮我看一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete from B where A1 in (select A1 from A where A3='Y')
delete from C where A1 in (select A1 from A where A3='Y')
delete from D where A1 in (select A1 from A where A3='Y')
delete from E where A1 in (select A1 from A where A3='Y')
-----------Y 是数值型的话就不需要引号
delete from C where A1 in (select A1 from A where A3='Y')
delete from D where A1 in (select A1 from A where A3='Y')
delete from E where A1 in (select A1 from A where A3='Y')
-----------Y 是数值型的话就不需要引号
追问
谢谢你。麻烦再帮我看一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DELETE FROM B WHERE A1 IN(SELECT XX.A1 FROM A XX WHERE XX.A3='Y')
追问
谢谢你。麻烦再帮我看一下。
追答
第一个词写错了是delete,你写成select了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能不能把表结构 贴出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询