📌  相关文章
📜  mysql update table from select on another table - SQL (1)

📅  最后修改于: 2023-12-03 14:44:27.805000             🧑  作者: Mango

MySQL 更新表格从另一个表格选择 - SQL

在 MySQL 中,我们可以使用 SELECT 语句从一个表中选择数据,然后将其插入到另一个表中。 但是,如果我们想要更新一个表的数据,使其匹配另一个表的选择结果,该怎么办呢?这就是我们今天要讨论的主题 - MySQL 更新表格从另一个表格选择。

用法

使用 UPDATE 语句进行表的更新。其语法如下:

UPDATE table1 
SET column1 = (SELECT column2 FROM table2 WHERE condition)
WHERE condition;

其中:

  • table1:需要更新的表格的名称。
  • column1:需要更新的列的名称。
  • table2:提供选择数据的表格的名称。
  • column2:从表格2中选择数据的列的名称。
  • 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 子句来更新表格。 这种方法可以让我们根据另一个表格中的数据更新一个表,大大提高了我们在数据库管理中的灵活性。