mysql 根据一张表的内容更新另外一张表

qrkoydzdhlje1年前 ⋅ 1049 阅读
可以使用 MySQL 的 UPDATE 和 JOIN 语句将一张表的内容更新到另外一张表中。

例如,考虑以下两张表:

students表:

| id | name   | age |
|----|--------|-----|
| 1  | Alice  | 20  |
| 2  | Bob    | 21  |
| 3  | Claire | 22  |

scores表:

| id | student_id | math | science | english |
|----|------------|------|---------|---------|
| 1  | 2          | 85   | 90      | 80      |
| 2  | 1          | 90   | 85      | 92      |

要将 students 表中的所有学生姓名更新到 scores 表中,可以使用以下语句:

```
UPDATE scores
JOIN students ON scores.student_id = students.id
SET scores.name = students.name;
```

这将执行 INNER JOIN 操作,将两张表中 student_id 和 id 相等的行组合在一起。然后使用 SET 子句将 students 表中的 name 更新到 scores 表中的对应行的 name 列中。执行此操作后,scores 表如下所示:

| id | student_id | math | science | english | name   |
|----|------------|------|---------|---------|--------|
| 1  | 2          | 85   | 90      | 80      | Bob    |
| 2  | 1          | 90   | 85      | 92      | Alice  |
| 3  | 3          | 76   | 80      | 85      | Claire |

请注意,这种方法只适用于将值从一张表复制到另外一张表,而不是将表的所有内容复制。如果需要复制整个表,可以使用 INSERT INTO SELECT 语句。

全部评论: 0

    相关推荐