SQL查询从2个表中删除数据

时间:2016-01-20 17:00:09

标签: sql vba ms-access

我目前正在尝试使用另一个表(tbl_siphon_req_info)中的条件从表(tbl_siphon_PO)中删除数据。我使用以下SQL查询来执行此操作,但它仍然无效:

DoCmd.RunSQL " DELETE tbl_siphon_req_info.* FROM tbl_siphon_req_info a, tbl_siphon_PO b WHERE Concat(a.ross_PO_nbr, a.ross_sku12) = Concat(b.PO_ID, Sbstr(bitem_id,1,12))"

如何更正并完成查询?

2 个答案:

答案 0 :(得分:0)

并非所有数据库都支持与bootstrap.js的连接,因此编写查询的典型方法是:

delete

注意:delete from tbl_siphon_req_info ri where exists (select 1 from tbl_siphon_PO sp where concat(ri.ross_PO_nbr, ri.ross_sku12) = Concat(sp.PO_ID, substr(bitem_id, 1, 12) ); 可能拼写为substr(),具体取决于数据库。同样,substring()在大多数数据库中都可用,中缀运算符也可用。

此外,编写concat()子句的更典型方法是:

where

逻辑并不完全相同,但这可能是你的意图。

答案 1 :(得分:0)

这实际上取决于您使用的确切数据库。但你可以使用:

DELETE tbl_siphon_req_info, tbl_siphon_PO
FROM tbl_siphon_req_info AS a
LEFT JOIN tbl_siphon_PO AS b ON concat(a.ross_PO_nbr, a.ross_sku12) = concat(b.PO_ID, sbstr(bitem_id, 1, 12)