HSQLDB 从一张表的字段更新另一张表的字段

kos*_*ych 0 sql postgresql join hsqldb

尝试这样做:

UPDATE table1 t1
SET cost = t2.price
FROM table2 t2
WHERE t1.item_id = t2.item_id
Run Code Online (Sandbox Code Playgroud)

它适用于 PostgreSQL,但不适用于 HSQLDB。

如何修复此脚本以支持在 PostgreSQL 和 HSQLDB 上工作?

fre*_*edt 5

语法UPDATE ... FROM是非标准的。这是标准 SQL,适用于 HSQLDB(显然也适用于 PostgreSQL)。我真的很惊讶 PostgreSQL 9.4 语法文档没有提到这个自 1992 年以来就已经出现在标准中的语法。

UPDATE table1 t1
SET cost = (SELCT t2.price
FROM table2 t2
WHERE t1.item_id = t2.item_id)
Run Code Online (Sandbox Code Playgroud)