我有“puri”和“mailraku”作为两个临时表。如何解决此问题?关于“IN”的文档没有提到它。
UPDATE tr_lines_alls
SET ACT_FLG = 0
WHERE IMG_ID IN (puri, mailraku);
错误说:
Unknown column 'puri' in 'where clause'
答案 0 :(得分:3)
IN
运算符不适用于表,而是适用于值列表!!
也许你需要一些东西:
UPDATE tr_lines_alls
SET ACT_FLG = 0
WHERE IMG_ID IN (
SELECT * FROM (
(SELECT yourcolumn FROM puri) UNION
(SELECT yourcolumn FROM mailraku)
) AS tmp_union
);
答案 1 :(得分:-1)
你想要这样的东西吗? IN运算符不会仅使用临时列的值或列名称。 如果你想更新你的表,条件是要更新的表中的img_id与puri和mailraku表中的img_id匹配,那么你可以试试这个:
UPDATE tr_lines_alls
SET ACT_FLG = 0
WHERE tr_lines_alls.IMG_ID = puri.IMG_ID and tr_lines_alls.IMG_ID = mailkaru.IMG_ID