You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除未绑定银行卡的用户?解决MySQL 1093报错问题

解决MySQL #1093删除错误的两种方法

这个错误源于MySQL的限制:不能在DELETE/UPDATE语句的FROM子句中直接引用要修改的目标表,你的语句直接在IN子查询里引用了users表,触发了该限制。以下是两种可行的解决办法:

方法一:子查询嵌套临时表

将原筛选子查询嵌套一层,让MySQL把内部查询结果视为临时表,绕过直接引用目标表的限制:

delete from users
where id in (
    select id from (
        select u.id
        from users u
        left join customers_cards cc
            on cc.user_id = u.id
        where u.belongs_to = "ezpay"
            and cc.id is null
    ) as temp
)

方法二:使用DELETE JOIN(推荐)

通过JOIN直接关联两张表,直接删除符合条件的用户,这种写法执行效率更高,逻辑也更直观:

delete u
from users u
left join customers_cards cc
    on cc.user_id = u.id
where u.belongs_to = "ezpay"
    and cc.id is null

说明

两种方法都能实现需求,优先选择方法二,它无需嵌套子查询,性能更优且代码更简洁。

内容的提问来源于stack exchange,提问作者Martin AJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:34:57