gpt4 book ai didi

mysql - 合并MySQL多表删除语句

转载 作者:行者123 更新时间:2023-11-30 00:25:40 25 4
gpt4 key购买 nike

我能够将三个删除语句(其中一个带有嵌套选择)减少为以下两个非嵌套语句(<list> 是逗号分隔的 tid 列表):

DELETE cs FROM cs, ds WHERE cs.did=ds.did AND ds.tid IN (<list>)
DELETE ts, ds FROM ts, ds WHERE ds.tid=ts.tid AND ts.tid IN (<list>)

第一个应该找到所有 ds.did对应于ds.tid<list>并删除 cs 中的所有行包含这些did 。第二条语句删除 ts 的所有行和ds包含 tid 之一给出<list> 。我测试了这些语句,它们似乎有效。

但是我不喜欢转移相同的想法<list>两次。所以我想在一个声明中做同样的事情。

有没有办法合并语句?

最佳答案

如果两个表的 ConditionID 相同,您应该能够使用 Multiple Table Delete Syntax

型号:

DELETE Table1, Table2, Table3
FROM Table1
JOIN Table2 ON (Table2.ConditionID = Table1.ConditionID)
JOIN Table3 ON (Table3.ConditionID = Table2.ConditionID)
WHERE Table1.ConditionID = ?;

尝试使用此查询:

DELETE cs, ts, ds
FROM cs
JOIN ds ON (cs.did = ds.did)
JOIN ts ON (ds.tid=ts.tid)
WHERE ts.tid IN (<list>) AND ss.tid IN (<list>)

关于mysql - 合并MySQL多表删除语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22908470/

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