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

如何删除SELECT INNER JOIN查询出的ytpointadder表对应匹配数据

正确删除语句及说明

报错原因

你写的删除语句无法运行核心有两个问题:

  • DELETE多表关联操作需要显式指定要删除哪个表的记录
  • DELETE语句不支持直接跟GROUP BY子句做分组操作

方案1:MySQL多表删除语法(无需分组逻辑)

如果你的需求是删除ytpointadder表中所有和watched表满足watched.watchedyt = ytpointadder.yturl且watched.ip = ytpointadder.ip的匹配记录,直接使用以下语句即可:

DELETE a 
FROM ytpointadder a
INNER JOIN watched b 
ON b.watchedyt = a.yturl AND b.ip = a.ip;

方案2:兼容全数据库的子查询写法(保留原有分组逻辑)

如果你确实需要保留原SELECT语句的GROUP BY a.ip分组规则,仅删除分组匹配到的记录,可使用子查询实现,兼容所有主流SQL数据库:

DELETE FROM ytpointadder
WHERE (ip, yturl) IN (
    -- 套一层临时表解决部分数据库不允许同表子查询删除的问题
    SELECT * FROM (
        SELECT a.ip, a.yturl
        FROM ytpointadder a
        JOIN watched b ON b.watchedyt = a.yturl AND b.ip = a.ip
        GROUP BY a.ip, a.yturl
    ) AS temp_tab
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:18:00