MySQL两表之间根据一个表的字段更新另一个表的字段无效

问题描述

我想把a表的chapterid字段改为b表的id字段, 条件是courseid相同 可是下面的sql语句无效, 求大神解答..

相关代码


UPDATE cmf_course_lesson a,
 cmf_course_chapter b
SET a.chapterid = b.id
WHERE
    a.courseid = b.courseid; 

a表的表结构

image.png

b表的表结构

image.png

阅读 4.2k
3 个回答

where条件加上主键就好了 where ... and A.id > 0

MySql运行在safe-updates模式下,导致非主键条件下无法执行update或者delete命令

UPDATE cmf_course_lesson a,
cmf_course_chapter b
JOIN cmf_course_lesson ON a.courseid = b.courseid
SET a.chapterid = b.courseid

UPDATE cmf_course_lesson a left join cmf_course_chapter b
ON a.courseid = b.courseid 
SET a.chapterid = b.courseid
where b.courseid > 0;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题