您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQLite是否支持“从……删除”。

SQLite是否支持“从……删除”。

通常,将整个联接移到一个查询中,该子查询查找要删除的行的主键:

DELETE FROM something
WHERE id IN (SELECT something.id
             FROM something
             JOIN combinations ON something.field1=combinations.field1
                              AND something.field2=combinations.field2
             WHERE combinations.something=1234)

如果您有复合主键,则可以使用rowid代替:

DELETE FROM something
WHERE rowid IN (SELECT something.rowid
                FROM something
                JOIN combinations ON something.field1=combinations.field1
                                 AND something.field2=combinations.field2
                WHERE combinations.something=1234)

如果您有复合主键,并且将该表创建为WITHOUT ROWID表,则必须将联接重写为相关子查询

DELETE FROM something
WHERE EXISTS (SELECT 1
              FROM combinations
              WHERE field1 = something.field1
                AND field2 = something.field2
                AND field3 = 1234)
SQLServer 2022/1/1 18:42:03 有511人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶