从t1删除,其中多个字段等于SELECT

时间:2019-07-17 21:49:32

标签: sql oracle sql-delete

我正在尝试删除表中的几条记录,其中这些字段的三(3)等于来自同一表的SELECT减去来自另一表的三(3)字段。 只需执行SELECT语句,我就会得到正确的记录数。

为了验证我要查找的记录数,我创建了以下查询:

Failed to fetch

它返回我期望的正确记录数。 当我运行以下命令时:

  SELECT c1, c2, c3
  FROM t1
  MINUS
  SELECT t2c1, t2c2, t2c3
  FROM t2

我收到的记录量超过五(5)倍。我大部分都不想删除。

目标代码如下:

SELECT *
FROM t1
WHERE (c1, c2, c3) IN (
  SELECT c1, c2, c3
  FROM t1
  MINUS
  SELECT t2c1, t2c2, t2c3
  FROM t2)
;

根据下一个查询删除表1中的所有记录:

DELETE
FROM t1
WHERE (c1, c2, c3) IN (
  SELECT c1, c2, c3
  FROM t1
  MINUS
  SELECT t2c1, t2c2, t2c3
  FROM t2)
;

0 个答案:

没有答案