gpt4 book ai didi

mysql - 使用 mysql 在一个查询中从多个表中删除行

转载 作者:行者123 更新时间:2023-11-28 23:37:44 26 4
gpt4 key购买 nike

我想删除表 dispatch、scormvars 和 licencias 的行,但我不确定是否是:我有一个选择,但我不知道如何使用删除进行查询:

select
distinct l.ID_plataforma as plataforma,
s.ID_dispatch as dispatch,
l.ID_licencia as licencia
from scormvars s
left join dispatch d on s.ID_dispatch = d.ID_dispatch
left join licencias l on d.ID_licencia = l.ID_licencia
where l.ID_plataforma = 1483

最佳答案

您可以编写存储过程来封装您的所有步骤,因为不可能在单个查询中从几个表中删除行。
您也可以编写 AFTER DELETE 触发器,并在删除适当的行时从一个表中删除行。
此外,您可以创建外键约束...

但是所有这些选项都很复杂...

对于我来说,我认为更简单的方法是使用临时表来存储 id,然后使用该临时表删除适当的行。例如:

create temporary table idsToDelete
select
distinct l.ID_plataforma as plataforma,
s.ID_dispatch as dispatch,
l.ID_licencia as licencia
from scormvars s
left join dispatch d on s.ID_dispatch = d.ID_dispatch
left join licencias l on d.ID_licencia = l.ID_licencia
where l.ID_plataforma = 1483;
-- and then delete
delete from dispatch where ID_dispatch in (select dispatch from idsToDelete);
delete from licencias where ID_licencia in (select licencia from licencia);

关于mysql - 使用 mysql 在一个查询中从多个表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35296690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com