📜  从另一个表mysql插入表(1)

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

在 MySQL 中从另一个表插入数据到目标表

有时候,我们需要从一个表中导入数据到另一个表中,这个操作可以使得我们的工作更加高效。在 MySQL 中,我们可以使用 INSERT INTO SELECT 语句来将数据从一个表插入到另一个表中。

语法

下面的 SQL 语句演示了如何从另一个表复制数据并插入到目标表中:

INSERT INTO 目标表名 (列1, 列2, 列3, ...)
SELECT 列1,列2,列3,...
FROM 源表名
WHERE 过滤条件

其中:

  • 目标表名 为我们要插入数据的表。
  • 列1, 列2, 列3, ... 是我们要插入数据的列。
  • 源表名 表示我们要从哪个表中复制数据。
  • 列1, 列2, 列3, ... 是我们从源表中要复制的列。
  • WHERE 从源表中选取要复制的行的条件。如果不需要过滤,则可以省略。
示例

假设我们有两个表,一个是 users,另一个是 new_usersusers 表包含了所有的用户,而 new_users 表只包含了最近新注册的用户。我们需要将 new_users 表中的数据,插入到 users 表中。

下面的 SQL 示例演示了如何从 new_users 表中复制数据并插入到 users 表中:

INSERT INTO users (name, email, age)
SELECT name, email, age
FROM new_users

这个 SQL 语句将会将 new_users 表中的 name, email, age 等三列数据获取到并插入到 users 表中。

注意事项
  • 在执行 INSERT INTO SELECT 语句之前,目标表必须已经存在。
  • 要插入数据的列需要在目标表中存在,否则会报错。
  • 插入数据的列的顺序需要和目标表中的列的顺序对应,否则会插入到错误的列。
  • 源表中选取行的条件可以省略,在这种情况下将会选取源表中的所有数据。
  • 如果源表和目标表中的列名相同,可以使用 AS 关键字来指定映射关系。