【发布时间】:2015-10-04 05:54:50
【问题描述】:
我有这样的查询
UPDATE t_prd_cost_compare
SET
2015_AUG_PRD_UNIT_PRICE=i.PRD_UNIT_PRICE,
2015_AUG_PRD_SELLING_PRICE=i.PRD_SELLING_PRICE,
2015_AUG_PRD_IN_PATIENT_LIST_PRICE=i.PRD_IN_PATIENT_LIST_PRICE,
2015_AUG_PRD_OUT_PATIENT_LIST_PRICE=i.PRD_OUT_PATIENT_LIST_PRICE
FROM (
SELECT PRODUCTID,PRD_UNIT_PRICE,PRD_SELLING_PRICE,PRD_IN_PATIENT_LIST_PRICE,PRD_OUT_PATIENT_LIST_PRICE
FROM t_product_catalog
LEFT JOIN T_adjust ON IAJ_PRODUCTID=PRODUCTID AND IAJ_ADJNO IS NULL
WHERE PRODUCTID>1 AND (DATE(IAJ_DATE) = '2015-01-01')
GROUP BY IAJ_PRODUCTID
) AS i
WHERE i.PRODUCTID = t_prd_cost_compare.PRODUCTID
我收到这样的错误
错误代码:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'FROM ( 在第 7 行选择 PRODUCTID,PRD_UNIT_PRICE,PRD_SELLING_PRICE,PRD_IN_PATIENT_LIST_PRI'
我检查了select语句是否正确,但我仍然得到错误!
有什么想法吗?
【问题讨论】:
-
UPDATE 语句中没有 FROM。尝试改用 JOIN。
-
一个好的经验法则:如果没有聚合,并且您不知道自己在做什么,请不要使用 GROUP BY