如何在临床表中使用IN运算符

时间:2011-12-20 08:58:03

标签: mysql

我有“puri”和“mailraku”作为两个临时表。如何解决此问题?关于“IN”的文档没有提到它。

UPDATE tr_lines_alls
SET ACT_FLG = 0
WHERE IMG_ID IN (puri, mailraku);

错误说:

 Unknown column 'puri' in 'where clause'

2 个答案:

答案 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