我正在尝试对本地Access表运行此删除查询,但是我收到错误消息
无法从指定的表中删除
请提供正确的SQL来复制和粘贴。
非常感谢你,Nathaniel
DELETE RO.*, RO.STATUS, CO.ID, CO.PRINTED_DATE
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));
答案 0 :(得分:1)
此查询取决于SYSADM_CUSTOMER_ORDER在ID上具有唯一索引。
DELETE ro.*
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
如果您没有SYSADM_CUSTOMER_ORDER的索引,可以在这些行上使用某些内容:
DELETE tmpreleasedorders.*
FROM tmpreleasedorders
WHERE status IN ( "c", "x" )
OR orderid IN (
SELECT orderid
FROM tmpreleasedorders AS ro
LEFT JOIN sysadm_customer_order AS CO
ON RO.orderid = CO.id
WHERE CO.id IS NULL
OR CO.printed_date IS NULL)