【发布时间】:2012-09-22 05:33:46
【问题描述】:
我对 Oracle Sql 查询并不十分熟悉,因此我在从表中删除某些行时遇到问题,这些行必须满足包含另一个(连接)表的字段的约束。换句话说,我想编写一个查询来删除包括 JOIN 在内的行。
在我的情况下,我有一个表 ProductFilters 和另一个表 Products 加入字段 ProductFilters.productID = Products.ID。我想从ProductFilters 中删除ID 大于或等于200 的行,并且它们引用的产品名称为“Mark”(名称是产品中的一个字段)。
我想先了解一下 JOIN 在 Oracle 中的删除查询中是否可以接受。如果不是,我应该如何修改此查询以使其正常工作,因为在该表单上我收到一个错误:
DELETE From PRODUCTFILTERS pf
where pf.id>=200
And pf.rowid in
(
Select rowid from PRODUCTFILTERS
inner join PRODUCTS on PRODUCTFILTERS.PRODUCTID = PRODUCTS.ID
And PRODUCTS.NAME= 'Mark'
);
【问题讨论】:
-
是的,您可以使用连接删除:请参阅此处stackoverflow.com/a/3675205/110933
标签: sql oracle sql-delete