我正在尝试修复一个不完整的数据库,我无法控制架构,我需要找到丢失的条目并插入它们。
这是我得出的语法:
INSERT INTO
downloads (product_id, filename)
VALUES
(
products_id = ( SELECT id
FROM products
WHERE id NOT IN
( SELECT product_id
FROM downloads
)
),
filename = 'default.zip'
)
子查询单独工作正常,但上面会引发错误
#1093 - You can't specify target table 'download' for update in FROM clause
我已经查看了许多与此错误相关的 StackOverflow 问题(像这样),并且我认为有一种方法可以嵌套子查询,以便它“创建一个隐式临时表,因此它不算作同一张表你正在更新“但我无法适应它。
如果我的方法效率低下没关系,我很想看到一个接近我的语法的解决方案,但任何解决方案都会有所帮助。