2011-09-17 82 views
0

我想根據不同表中的條件刪除一個表中的記錄,但我收到錯誤消息:「指定包含要刪除的記錄的表」 (我只想刪除表「RO」中的所有記錄,表「CO」僅用於標準目的)。請爲我提供適當的SQL來複制和粘貼(我不知道SQL,我使用查詢生成器)。根據不同表中的條件刪除一個表中的記錄

DELETE CO.ID, CO.PRINTED_DATE, RO.STATUS, RO.orderID, RO.CREATE_DATE, RO.NAME, RO.cust_ID, RO.lines, RO.PICKER, RO.COMMENTS, RO.sls_rep, RO.weight, RO.PO_number, RO.Tracking_Number, RO.ship_via, RO.nmbrOfBoxes 
FROM tmpReleasedOrders AS RO 
LEFT JOIN SYSADM_CUSTOMER_ORDER AS CO ON RO.orderID = CO.ID 
WHERE (((RO.STATUS)="C" Or (RO.STATUS)="X")) OR (((CO.ID) Is Null)) OR (((CO.PRINTED_DATE) Is Null)); 

回答

1

這裏是針對來自其它表的條件刪除查詢語法:

DELETE tmpReleasedOrders.* 
FROM tmpReleasedOrders AS RO 
    LEFT JOIN SYSADM_CUSTOMER_ORDER AS CO ON (RO.orderID = CO.ID) 
WHERE (RO.STATUS="C") OR (RO.STATUS="X") OR (CO.ID Is Null) 
+1

我得到一個錯誤:「Microsoft Jet數據庫引擎無法識別爲有效的‘tmpReleasedOrders *。’字段名稱或表達「。該修復似乎是將'DELETE tmpReleasedOrders。* FROM tmpReleasedOrders AS RO ...''更改爲'DELETE RO。* FROM tmpReleasedOrders AS RO ...' – onedaywhen

+0

「您不需要在刪除中指定字段名稱」 - 我不確定使用'*'作爲列列表的佔位符或指定表相關名稱(而不是表本身)是很有意義的。我更喜歡這樣的:''刪除從tmpReleasedOrders的狀態在('C','X')或不存在(選擇*從SYSADM_CUSTOMER_ORDER作爲CO的CO.ID = tmpReleasedOrders.orderID);' – onedaywhen

+0

我有同樣的問題,並有試圖根據JohnFx的建議更正語法。這是我的代碼。表名中的空格是否有問題?註冊用戶表格鏈接到Sharepoint站點。 DELETE [Registered Users]。* FROM [Registered Users] INNER JOIN RegisteredUsersInventory ON([Registered Users] .ModUseID = RegisteredUsersInventory.ModUseID)WHERE(RegisteredUsersInventory.ModUse_EndDT Is Not Null);' – RBSt

相關問題