mysql 根据查询的数据关联更新表中数据

有一个用户表 user

结构图下:

id     name  

+-----+----------+
| id   |  name   |
+-----+----------+
|   1 |   姓名1   | 

|   1 |   姓名2   |

|   1 |   姓名3   |
+-----+----------+

还要一个分数表 user_grade 

id  user_id  user_name grade

其中user_id 关联其user表信息     某天user_grade 表数据不正常了   user_id字段为空  于是乎我需要根据这个表的关联设计关系,去更新user_grade表数据   如

select * from user_grade

+-----+---------+---------+--------------+
| id  | user_id | user_name| grade |
+-----+---------+---------+--------------+
|   1 |    0    |  姓名1   |          1        |

|   1 |    0    |   姓名2  |        50        |

|   1 |    0    |   姓名3  |        89        |
+-----+---------+----------+--------------+ 

执行下面语句  即更新
UPDATE user_grade a  LEFT JOIN user b ON b.user_name = a.name    SET a.user_id = b.id   WHERE  b.user_id = 0;

UPDATE user_grade a  LEFT JOIN user b ON b.user_name = a.name    SET a.user_id = b.id   WHERE  b.user_id = 0;

结果如下:

+-----+---------+---------+--------------+
| id  | user_id | user_name| grade |
+-----+---------+---------+--------------+
|   1 |    1    |  姓名1   |          1        |

|   1 |    2    |   姓名2  |        50        |

|   1 |    3    |   姓名3  |        89        |
+-----+---------+----------+--------------+ 

posted @   树下水月  阅读(269)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示