【问题标题】:Oracle SQL; Column Update According To Condition In Another Table甲骨文SQL;根据另一个表中的条件更新列
【发布时间】:2020-11-16 12:21:27
【问题描述】:

我有这个代码:

UPDATE Properties pr
SET price = 5000
WHERE EXISTS (SELECT cm.propertyno 
              FROM Comments cm
              GROUP BY cm.propertyno
              HAVING COUNT(cm.propertyno) < 2);

我想根据 Comments 表中列的条件更新 Properties 表中的列。当我运行上面的代码时,所有行都会更新。而我希望更新 Comments 表中少于 2 个 propertyno 的行。

表格结构:

【问题讨论】:

  • 请将表格的结构复制并粘贴为代码,而不是图像。这么简单的问题是可以的,但是一般不能重复使用图片生成示例代码来回答。

标签: sql oracle sql-update


【解决方案1】:

使用相关子查询:

UPDATE Properties pr
    SET price = 5000
    WHERE EXISTS (SELECT cm.propertyno 
                  FROM Comments cm 
                  WHERE cm.propertyno = pr.propertyno
                  GROUP BY cm.propertyno
                  HAVING COUNT(cm.propertyno) < 2
                 );

您的版本只是检查GROUP BY 查询是否返回任何行——并且大概确实如此。与外部查询没有任何联系。

大概连接在propertyno上。

【讨论】:

    猜你喜欢
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多