sql - 甲骨文SQL;根据另一个表中的条件更新列
问题描述
我有这个代码:
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 的行。
表结构:
解决方案
使用相关子查询:
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
。
推荐阅读
- sublimetext3 - 如何使用转义字符创建插入 \{\} 的片段?
- windows - putty 通过脚本发送命令并捕获输出
- docker - Docker daemon windows 7:并发下载
- python - 使用 Jinja2 的 Python Mongodb 聚合
- visual-studio-2015 - TFS 2015 发布工件
- amazon - 如何通过解析器在 Appsync 上使用 batchWriteItem
- php - Laravel Blade:@stop VS @show VS @endsection VS @append
- excel - 根据条件更改单元格的颜色
- .net - 执行存储过程和读取返回值时出现“将数据类型 nvarchar 转换为 int 时出错”
- sql - 选择语句以获取字符串中的指定日期