使用SELECT JOIN的DELETE命令

时间:2018-12-30 18:50:14

标签: sql oracle

我在下面的delete命令中尝试过,但是我不知道为什么它不起作用:

DELETE FROM beteg
WHERE beteg.taj IN ( 
SELECT beteg.taj COUNT (ellatas.id) as "ellátások száma"
FROM ellatas RIGHT JOIN beteg ON ellatas.beteg = beteg.taj
WHERE "ellátások száma" = 0
);

1 个答案:

答案 0 :(得分:0)

我怀疑您想要

delete from beteg
    where not exists (select 1
                      from ellatas e
                      where e.beteg = beteg.taj
                     );

这将删除betegellatas中没有相应行的所有内容。

您的查询有多个问题:

  • where子句中使用了列别名。
  • 您正在使用IN,在子查询中有两列,在外部查询中有两列。
  • 子查询没有GROUP BY,但是正在使用COUNT()

在任何情况下,以上查询都更简单,并且应该具有更好的性能。