根据另一个表中的多个值删除行

时间:2012-06-15 19:26:04

标签: oracle oracle11g

此语句返回错误00920-无效的关系运算符。

我确信这是我的语法,但我没有看到它。如果任何代码可以查看它并指出我做对了,我会很感激。

谢谢

DELETE FROM TABLE15 p

  WHERE (p.item_id, p.product_id) IN

           (SELECT S.item_id, S.product_id )

              FROM TABLE14 S);

2 个答案:

答案 0 :(得分:2)

你的括号很狡猾......

DELETE FROM TABLE15 p
  WHERE (p.item_id, p.product_id) IN
           (SELECT S.item_id, S.product_id
              FROM TABLE14 S
                   );

您需要删除额外的一个。由于额外的括号,in未正确解析,导致错误。

答案 1 :(得分:0)

试试这个:

DELETE FROM table15 p
WHERE  ( p.item_id IN (SELECT S.item_id
                       FROM   table14 S) )
        OR (( p.product_id IN (SELECT S.product_id
                               FROM   table14 S) ));