日期:2014-05-17  浏览次数:20506 次

mysql 更新问题
UPDATE cg_disease_department AS a SET a.department_id = 
  SELECT department_id FROM cg_department AS b WHERE a.department_name = b.name

我的需求是 将b表的departmentid 更新到 a表的departmentid 条件是 a.department_name = b.name

我这sql问题在那

------解决方案--------------------
手册上说:
您也可以执行包括多个表的UPDATE操作。table_references子句列出了在联合中包含的表。该语法在13.2.7.1节,“JOIN语法”中进行了说明。以下是一个例子:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
以上的例子显示出了使用逗号操作符的内部联合,但是multiple-table UPDATE语句可以使用在SELECT语句中允许的任何类型的联合,比如LEFT JOIN。

注释:您不能把ORDER BY或LIMIT与multiple-table UPDATE同时使用。

于是你应该知道问题在哪里了吧?