我正在尝试运行以下查询,以使用 case 语句根据另一个表中的值更新一个表。我收到以下错误。
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from tbl_a as a, tbl_b as b
WHERE a.DIV_NO = b.' at line 12
这里是查询:
UPDATE a
SET
a.MIN_5 = b.Min_Five,
a.IN_PR = b.Ad_Flag ,
a.FRC = (
CASE
WHEN b.Prc_Fl = 'N' THEN 'Y'
WHEN b.Prc_Fl = 'Y' THEN 'N'
ELSE 'D'
END
)
FROM tbl_a AS a, tbl_b AS b
WHERE a.DIV_NO = b.Div_num
AND a.OFR_ID = b.Flg ;
最佳答案
用 JOIN
试试这个
UPDATE
tbl_a AS a
JOIN
tbl_b AS b ON (a.DIV_NO = b.Div_num AND a.OFR_ID = b.Flg)
SET
a.MIN_5 = b.Min_Five,
a.IN_PR = b.Ad_Flag,
a.FRC =
CASE
WHEN b.Prc_Fl = 'N'
THEN 'Y'
WHEN b.Prc_Fl = 'Y'
THEN 'N'
ELSE 'D'
END
关于mysql - 使用 case 语句 (MYSQL) 根据另一个表中的值更新一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21914358/