gpt4 book ai didi

mysql - 从 where 子句中使用的表中删除

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

我正在编写一个小脚本来同步 2 个 MySQL 表(t1 将“镜像”到 t2)

在一个步骤中,我想删除 t2 中已在 t1 中删除的具有相同 ID 的行。

我试过这个查询:

delete from t2 where t2.id in 
( select t2.id left join t1 on (t1.id=t2.id) where t1.id is null )

但是 Mysql 禁止我在删除和选择中同时使用 t2(顺带一提,这听起来很合乎逻辑)

当然,我可以将查询拆分为 2 个查询:首先选择 ID,然后删除具有这些 ID 的行。

我的问题:您是否有更简洁的方法从 t2 中删除 t1 中不再存在的行?只有一个查询?

最佳答案

这个查询将两个表连接起来,只选择那些在新表中没有伙伴的表,从而允许您一次性删除它们:

DELETE t2 FROM t2
LEFT JOIN t1
ON t2.id = t1.id
WHERE t1.id IS NULL;

关于mysql - 从 where 子句中使用的表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806052/

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