我有以下 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/