📅  最后修改于: 2023-12-03 14:44:27.805000             🧑  作者: Mango
在 MySQL 中,我们可以使用 SELECT 语句从一个表中选择数据,然后将其插入到另一个表中。 但是,如果我们想要更新一个表的数据,使其匹配另一个表的选择结果,该怎么办呢?这就是我们今天要讨论的主题 - MySQL 更新表格从另一个表格选择。
使用 UPDATE 语句进行表的更新。其语法如下:
UPDATE table1
SET column1 = (SELECT column2 FROM table2 WHERE condition)
WHERE condition;
其中:
让我们来看一个简单的例子。 假设我们有两个表,学生和教师:
| ID | NAME | AGE | CLASS | |----|--------|-----|--------| | 1 | Tom | 18 | ClassA | | 2 | Jerry | 19 | ClassB | | 3 | Angela | 20 | ClassC |
| ID | NAME | CLASS | |----|-------|--------| | 1 | David | ClassA | | 2 | Lily | ClassB | | 3 | Jack | ClassC |
我们希望将学生表格中的 CLASS 列更新为教师表格中的 CLASS 名称,以便我们将学生按照其所属的班级分组。
为此,我们可以使用以下 SQL 语句:
UPDATE student
SET class = (SELECT teacher.class FROM teacher
WHERE student.class = teacher.class)
WHERE EXISTS
(SELECT teacher.class FROM teacher
WHERE student.class = teacher.class);
该语句将学生表格中的类名更新为它们所属的教师表单元格。
在 MySQL 中,我们可以使用 UPDATE 语句和 SELECT 子句来更新表格。 这种方法可以让我们根据另一个表格中的数据更新一个表,大大提高了我们在数据库管理中的灵活性。