mysql批量更新

mysql:
A表:name1,nameid
B表:name2,id
A表的name1有值,和B表的name2对应。B表的id也有值。
现在要拿到name1和name2相等的B表的id的值赋给A表的nameid 的sql怎么写呀?
谢谢

阅读 2k
1 个回答

你需要保证B表的name2没有重复值,或者即使有重复,name2所对应的id应该是相同的。那

update A set nameid = id from B where A.name1 = B.name2

应该就可以了。或者这样:

update A set nameid = (select id from B where A.name1 = B.name2)

缺点是会把在B中查不到name1A.nameid置为null

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进