以子查询作为数据源的 SQL 更新不起作用 (Postgresql)

标签 sql database postgresql

我有以下 SQL DML 更新命令,但语法不正确且命令不起作用:

UPDATE hmsg_vehicle_category
SET hmsg_vehicle_category.hmsg_id, hmsg_vehicle_category.vehiclecategories_inputname
SELECT l_p.hmsg_id, tmp_p_vc.inputname 
FROM hmsg_him_product AS l_p INNER JOIN (  SELECT p.id, vc.inputname
                                           FROM him_product p INNER JOIN vehicle_category vc
                                              ON p.id = vc.product
                                           ORDER BY p.id, vc.inputname DESC ) AS tmp_p_vc
    ON l_p.products_id = tmp_p_vc.id
WHERE l_p.hmsg_id = 171;

我如何执行这个 SQL 命令? snytax哪里出错了?

感谢您的帮助!

问候 玛维夫

最佳答案

类似于:

update hmsg_vehicle_category set
    hmsg_id = l_p.hmsg_id,
    vehiclecategories_inputname = tmp_p_vc.inputname 
from hmsg_him_product as l_p
    inner join him_product as p on p.id = l_p.products_id 
    inner join vehicle_category as vc on vc.product = p.id
where l_p.hmsg_id = 171

请注意,这将更新 hmsg_vehicle_category 表中的所有记录。可能您想将其添加到 where 子句中:

update hmsg_vehicle_category as hvc set
    vehiclecategories_inputname = tmp_p_vc.inputname 
from hmsg_him_product as l_p
    inner join him_product as p on p.id = l_p.products_id 
    inner join vehicle_category as vc on vc.product = p.id
where
    l_p.hmsg_id = 171 and hvc.hmsg_id = 171

但我目前无法提供更具体的建议,因为您的问题还不清楚。

关于以子查询作为数据源的 SQL 更新不起作用 (Postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188582/

相关文章:

database - 可以是多个类别的子类别的类别?

PostgreSQL\d 命令 : Any way to "select" only one column?

entity-framework - 使用 ef 在数据库中使用没有时间的日期

postgresql - 使用 sqlalchemy orm 过滤数据库列中的一系列值

c# - 使用 C# 创建的图像 - 如何通过 SQL 将它们插入 BLOB

php - 在 PHP SQL 查询中使用子字符串和追加

sql - 当行计数大于 1.000.000 时,Oracle APEX 呈现数据的速度变慢

sql - 从两个表中选择以查找基于生效日期的增值税税率

java - 如何在数据库中保存大文件?

php - 在网站托管期间出现此错误