MySql如何将一个表字段更新到另一个表字段

今天遇到这样一个需求:

有两张表,一张是专辑表,另一张是专辑下的图片表,

专辑表中有拍摄年\月,两个字段; 图片表中有实际拍摄日期的字段;

因为专辑表中这两个字段是后加入的,因此只能用一条sql语句将之前程序没有写入的拍摄年月增加进入;

其实这个问题很简单,所以毫不犹豫采用了 以下模式进行更新,

UPDATE streetphoto a 
SET a.`year` = YEAR(photos.`shootdate`), 
a.`month` = MONTH(photos.`shootdate`)
FROM photos WHERE a.`id` = photos.`refid` AND photos.`moduleid` = 4 AND photos.`iscover` = 1

结果发现,Mysql竟然不吃这一套还明晃晃的给我抛出个语法错误,

如图:

然后沉默中它就是不告诉你为啥错误,反正它是错了,你自己想办法吧

那好吧,此路不通就换一个办法,所以下面的方法执行毫无问题;

UPDATE streetphoto, photos
SET streetphoto.`year` = YEAR(photos.`shootdate`),
streetphoto.`month` = MONTH(photos.`shootdate`)
WHERE streetphoto.`id` = photos.`refid` AND photos.`moduleid` = 4 AND photos.`iscover` = 1

成功通过.

猜你喜欢

转载自www.cnblogs.com/mcqueen/p/9649672.html