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

如何以View为数据源编写SQL删除Table中存在匹配的行

解决方案

你可以根据你使用的数据库类型选择对应的SQL写法,以下几种是最常用的实现方式:

1. 全数据库兼容写法(推荐)

使用EXISTS关键字匹配,所有主流关系型数据库(MySQL、PostgreSQL、SQL Server、Oracle、SQLite等)都支持该语法:

DELETE FROM table1
WHERE EXISTS (
    SELECT 1 FROM view1
    WHERE 
        view1.column1 = table1.column1
        AND view1.column2 = table1.column2
        AND view1.column3 = table1.column3
);

2. MySQL专属多表删除写法

DELETE table1
FROM table1
INNER JOIN view1 
    ON table1.column1 = view1.column1
    AND table1.column2 = view1.column2
    AND table1.column3 = view1.column3;

3. PostgreSQL/SQLite专属写法

DELETE FROM table1
USING view1
WHERE 
    table1.column1 = view1.column1
    AND table1.column2 = view1.column2
    AND table1.column3 = view1.column3;

注意事项

执行删除操作前强烈建议先运行查询语句确认要删除的行符合预期,避免误删数据:

SELECT * FROM table1
WHERE EXISTS (
    SELECT 1 FROM view1
    WHERE 
        view1.column1 = table1.column1
        AND view1.column2 = table1.column2
        AND view1.column3 = table1.column3
);

上述查询返回的就是即将被删除的行,确认结果无误后再执行删除语句即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:01