gpt4 book ai didi

mysql - 既作为 'DELETE' 的目标又作为单独的数据源

转载 作者:行者123 更新时间:2023-11-29 06:58:25 24 4
gpt4 key购买 nike

我的 SQL 是:

delete  from user 
where cid in (select cid from user group by cid having count(cid) > 1)
and id not in (select min(id) from user group by cid having count(cid )>1)

提示错误信息:

Table 'user' is specified twice, both as a target for 'DELETE' and as a separate source for data

如何解决这个问题

最佳答案

你尝试过吗:

CREATE TABLE user
(`cid` int, `username` varchar(50))
;

INSERT INTO user
(`cid`, `username`)
VALUES
(1, 'John'),
(1, 'John'),
(2, 'Paul'),
(2, 'Paul'),
(3, 'Ryan')
;

DELETE FROM user
WHERE cid IN
( SELECT todel.cid
FROM (SELECT * FROM user todel
WHERE todel.cid
IN (
SELECT t1.cid
FROM user t1
GROUP BY t1.cid
HAVING COUNT(t1.cid) > 1
)
AND todel.cid
NOT IN (
SELECT MIN(t2.cid)
FROM user t2
GROUP BY t2.cid
HAVING COUNT(t2.cid) > 1
)
) as todel
)

由于对 stackoverflow 的一些研究,我发现了这一点: Delete - I can't specify target table?

听起来这和你遇到的问题是一样的。

关于mysql - 既作为 'DELETE' 的目标又作为单独的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44672296/

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