我有以下選擇查詢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