sql - 根据另一个表中的值更新值

标签 sql postgresql sql-update

为此尝试了各种不同的选项,但遇到了障碍。

我有两张 table 。每当 customefieldvalue 表中的 stringvalue 为“次要”时,我想在问题表中将优先级更新为 4。

UPDATE issue SET priority = '4'
FROM customfieldvalue
WHERE customfieldvalue.stringvalue = 'Minor';

最佳答案

我假设这些表以某种方式相关,比如 IssueId 字段。所以你可以这样做:

UPDATE issue
SET priority = '4' 
WHERE IssueId IN (SELECT IssueId FROM customfieldvalue WHERE stringvalue = 'Minor')

您可能还希望在嵌套查询的 where 子句中使用一个条件来缩小自定义字段的范围,使其成为您所关注的字段,而不是任何值为“次要”的自定义字段,例如:

WHERE customfieldname = 'PRIORITY' AND stringvalue = 'Minor'

如果你打算一直运行它,那么你应该过滤掉那些在主 where 子句中已经具有正确值的那些:

WHERE priority <> '4' AND IssueId IN (...

关于sql - 根据另一个表中的值更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560790/

相关文章:

mysql - 如何查找具有所有其他列值的所有行

mysql - 错误代码 : 1093 Table 'transactions' is specified twice, 既作为 'UPDATE' 的目标又作为单独的数据源

postgresql - 如何为nodejs设置 Node 路径(Ubuntu)

sql - PostgreSQL ltree - 如何从使用 ltree 构造的二叉树中获取最左/最右路径和子级?

c# - 如何在 C# 中返回 postgresql 函数的结果?控制台输出为空

java - 计算 H2 数据库中的重复行数

sql - 是否可以在同一选择中重用聚合函数结果?

mysql - 使用 UPDATE 查询的奇怪结果

sql - 使用一个 UPDATE 命令将列中的某些值更改为 SQL 中的某些其他值

java - '? 附近更新查询中的语法错误在 Eclipse 中但在 MySQL Workbench 中工作