sql - 使用多个表中的值更新语句

标签 sql firebird firebird-embedded

我正在尝试更新 Firebird-SQL 数据库中的值,我需要使用其他数据库中的值 WHERE 子句中的表。

该语句如下所示:

UPDATE table1 SET date = 'TODAY' FROM table2
WHERE table2.id = table1.table2_id
AND table2.value1 >= table2.value2

显然,这在 Firebird-SQL 中不起作用。

这可能是一个非常简单的问题,但我不习惯 Firebird-SQL。

最佳答案

尝试使用相关子查询:

UPDATE table1
    SET DATE = 'TODAY'
    WHERE EXISTS (SELECT 1
                  FROM table2
                  WHERE table2.id = table1.table2_id AND table2.value1 >= table2.value2
                 );

关于sql - 使用多个表中的值更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26971639/

相关文章:

MySQL多对多,获取值

sql - 是否可以将 varchar(32) 的字段转换为 Firebird 数据库中的 BLOB

sql - 简单的 Firebird 查询非常慢

c++ - Firebird/IBPP 插入无提示地失败

firebird - 保护 firebird 嵌入文件

c# - 需要获取当前网络服务器名称

SQL 更新查询

sql - 需要一个 .NET 数据库版本控制脚本运行器

sql - Delphi 上需要 SQL 解析器

java - hibernate ,GDS 异常。 335544569.嵌入式 Firebird 的动态 SQL 错误