mysql update语句 两个主键更新语句问题,求救
如图,我想把f数据库中menu_option表的option_text字段里面的内容更新到另外一个数据库的表里面a数据库中menu_option表的option_text...
如图,我想把f数据库中menu_option表的option_text字段里面的内容更新到另外一个数据库的表里面a数据库中menu_option表的option_text字段里但是我用下面的语句就不行了,一般有唯一值或主键的表都能搞定,但是这个表很特殊,是有2个主键的,menu_id和id.求解update a.menu_option set a.menu_option.`option_text` = (select `option_text` from f.menu_option where a.menu_option.menu_id = f.menu_option.menu_id) where exists ( select 1 from f.menu_option where a.menu_option.menu_id = f.menu_option.menu_id)
这两个表结构是一样的,数据不一样而已 展开
这两个表结构是一样的,数据不一样而已 展开
展开全部
如果是双字段主键,则连接条件里加多一个字段就行了
建议修改如下试一试:
update a.menu_option set a.menu_option.`option_text`
= (select `option_text` from f.menu_option
where a.menu_option.menu_id = f.menu_option.menu_id and
a.menu_option.id = f.menu_option.id)
where exists ( select 1 from f.menu_option where
a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id)
或者这样写
update a.menu_option, f.menu_option
set a.menu_option.`option_text`=f.menu_option.`option_text`
where a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id
建议修改如下试一试:
update a.menu_option set a.menu_option.`option_text`
= (select `option_text` from f.menu_option
where a.menu_option.menu_id = f.menu_option.menu_id and
a.menu_option.id = f.menu_option.id)
where exists ( select 1 from f.menu_option where
a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id)
或者这样写
update a.menu_option, f.menu_option
set a.menu_option.`option_text`=f.menu_option.`option_text`
where a.menu_option.menu_id = f.menu_option.menu_id
and a.menu_option.id = f.menu_option.id
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询