gpt4 book ai didi

sql - 如何在 ms access 中删除两个表中的匹配行?

转载 作者:行者123 更新时间:2023-12-02 00:40:53 24 4
gpt4 key购买 nike

这是我在 ms access 中的 sql 代码:

DELETE Table1.*
FROM Table1
INNER JOIN Table2 ON Table1.Field1 = Table2.Field1

我想在这里注意到表 1 有很多列,而表 2 只有一列。我想删除 Table1 中 Table1.Field1 = Table2.Field1 的所有行。但是,当我执行代码时出现此错误:无法从指定的表中删除。

但是,如果我使用 SELECT 而不是 DELETE,它可以很好地显示行:

SELECT Table1.*
FROM Table1
INNER JOIN Table2 ON Table1.Field1 = Table2.Field1

但我想删除这些行。

最佳答案

考虑一个子查询。 MS Access 中的 DELETE 查询应该将行的删除集作为完整的独立结果集。在您的尝试中,结果集是两个表,即使您只使用 SELECT 子句查看第一个表:

DELETE Table1.* 
FROM Table1
WHERE Field1 IN (SELECT Field1 FROM Table2)

与 ANSI 对齐,不需要星号:

DELETE FROM Table1
WHERE Field1 IN (SELECT Field1 FROM Table2)

关于sql - 如何在 ms access 中删除两个表中的匹配行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46768257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com