mysql根据多个表更新一个表的多个字段
假设现在有四个张表,表shopidname1YC2WM表shopproductshopidproduct1notebook2t-shirt表stationeryidnam...
假设现在有四个张表,
表shop
id name
1 YC
2 WM
表shopproduct
shopid product
1 notebook
2 t-shirt
表stationery
id name
1 notebook
2 pen
3 ink
表close
id name
1 t-shirt
2 skirt
现在, 我想把shopproduct.shopid更新为相应的shop.name,把shopproduct.product更新为相应的stationary.id或者close.id,能不能用一条语句搞定。 展开
表shop
id name
1 YC
2 WM
表shopproduct
shopid product
1 notebook
2 t-shirt
表stationery
id name
1 notebook
2 pen
3 ink
表close
id name
1 t-shirt
2 skirt
现在, 我想把shopproduct.shopid更新为相应的shop.name,把shopproduct.product更新为相应的stationary.id或者close.id,能不能用一条语句搞定。 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
展开全部
id 和 name类型不一样吧
特别是id如果是int类型 主键之类的。
你应该对应好类型 再update。
特别是id如果是int类型 主键之类的。
你应该对应好类型 再update。
追问
谢谢你的关注,这个只是各例子,实际id和name都是varchar。
追答
一条应该搞不定 主要你的是
把shopproduct.product更新为相应的stationary.id或者close.id,可以分开写。
update shopproduct a left join shop b on a.shopid=b.id set a.shopid=b.name;
update shopproduct a left join stationery b on a.product=b.name set a.product=b.id;
update shopproduct a left join close b on a.product=b.name set a.product=b.id;
大概这样,没有测试。 另外注意如果数据量大的话 字段加索引。先备份好原数据,另外可以建临时表来更新比较保险。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询