我有以下选择查询MS Access如何将此选择查询转换为删除查询?
SELECT t1.*
FROM t1, t2
WHERE t1.field1=t2.field1 And t1.field2=t2.field2 And t1.field3=t2.field3 ;
我想这个转换为删除查询。我该怎么写呢?
我有以下选择查询MS Access如何将此选择查询转换为删除查询?
SELECT t1.*
FROM t1, t2
WHERE t1.field1=t2.field1 And t1.field2=t2.field2 And t1.field3=t2.field3 ;
我想这个转换为删除查询。我该怎么写呢?
什么这个:
DELETE
FROM t1
INNER JOIN t2 ON t1.field1=t2.field1
And t1.field2=t2.field2
And t1.field3=t2.field3
将根据三个字段值删除t1中t2中具有匹配记录的所有记录。
不是100%的进入,但用户:
DELETE t1
FROM t1, t2
WHERE t1.field1=t2.field1 And t1.field2=t2.field2 And t1.field3=t2.field3 ;
工作?
试试这个
DELETE FROM t1
FROM t1 AS tt1, t2 AS tt2
WHERE tt1.field1=tt2.field1 And tt1.field2=tt2.field2 And tt1.field3=tt2.field3 ;
编辑:
在MS Access
DELETE DISTINCTROW t1.*
FROM t1 INNER JOIN t2 ON (t1.field3 = t2.field3) AND (t1.field2 = t2.field2) AND (t1.field1 = t2.field1);
完成这一任务,它的工作,您必须将唯一的记录设置为Yes
from子句中的语法错误(第二行) – tksy 2009-09-30 08:08:47
第一个示例中的“DELETE FROM t1”不应该是“DELETE FROM tt1”吗?别名的目的是什么使表名更长? – 2009-10-02 02:32:11
第二个答案是正确的,我离开了第一个,但可以删除它 – 2009-10-02 05:28:13
怎么样这个查询:
DELETE FROM t1
WHERE t1.field1 IN (
SELECT t1.field1 FROM t1, t2
WHERE t1.field1=t2.field1 And
t1.field2=t2.field2 And
t1.field3=t2.field3)
我一直在挣扎类似的东西。
我发现最简单的方法不是使用查询,而是使用多个主键创建一个空的重复表,并设置好重复项(设计视图按住Ctrl键并选择所需的行,然后右键单击并将它们全选为主键)。
然后将表中的所有行复制并粘贴到新表中。确定错误信息,你会发现你有一个只有你想要的字段中唯一值的表。
这还有一个好处,就是不允许在新表中存在重复的行。
no this does not work – tksy 2009-09-30 08:02:40
FROM子句对于Jet/SQL DELETE语句无效。 – 2009-10-02 02:31:07
@ david-thank you – 2009-10-02 02:37:30