gpt4 book ai didi

mysql - 根据唯一id和非唯一id从mysql中删除多条记录

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

我是 MySQL 新手,在转换 SQL 语句时遇到问题,如果可能的话,希望获得一些帮助。

总结是,我需要能够根据上次登录日期从一个表中删除项目,不幸的是我无法控制表设计(这是有缺陷的)并且必须将字符ID与字符UID和LastLogin进行比较date 以便从另一个仅通过charcaterID(非唯一)跟踪对象的表中删除项目。

这是我到目前为止所拥有的

DELETE FROM object_data WHERE CharacterID IN (
SELECT CharacterID FROM object_data
WHERE CharacterID IN (
SELECT CharacterID FROM character_data
WHERE LastLogin < DATE_SUB(NOW(), INTERVAL 30 DAY)
AND PlayerUID NOT IN (
SELECT PlayerUID FROM character_data
WHERE LastLogin > DATE_SUB(NOW(), INTERVAL 30 DAY))))

我收到的错误是 1093。您无法在 FROM 子句中的更新中指定目标表“object_date”。

有什么想法吗?

最佳答案

如果不命名子查询表名,有时 SQL 会报错

DELETE FROM object_data 
WHERE CharacterID IN
(
SELECT CharacterID
FROM object_data
WHERE CharacterID IN
(
SELECT CharacterID
FROM character_data
WHERE LastLogin < DATE_SUB(NOW(), INTERVAL 30 DAY)
AND PlayerUID NOT IN
(
SELECT PlayerUID
FROM character_data
WHERE LastLogin > DATE_SUB(NOW(), INTERVAL 30 DAY)
) AS t1
) AS t2
) AS t3

关于mysql - 根据唯一id和非唯一id从mysql中删除多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737066/

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