使用where子句中的select查询中的一个字段更新查询

时间:2014-04-11 10:10:03

标签: mysql mysql-error-1064

我知道这是一个令人困惑的标题,但这个例子将展示我想要实现的目标:

UPDATE tr.tbl_to_be_updated SET cat=-1 WHERE cat NOT IN (SELECT c.id
  FROM tr.cat as c WHERE c.sh=tbl_to_be_updated.sh))

我怎样才能做到这一点?使用此查询,我收到一个不允许的错误。

1 个答案:

答案 0 :(得分:2)

UPDATE tbl_to_be_updated 
LEFT JOIN cat ON cat.sh = tbl_to_be_updated.sh
SET tbl_to_be_updated.cat = -1 
WHERE cat.sh IS NULL