MySQL 向另一张表的每个ID插入行

MySQL 向另一张表的每个ID插入行

在MySQL中,有时候需要向另一个表的每个ID插入行。这个需求在实际应用中很常见。这里将介绍如何在MySQL中实现这个功能。

阅读更多:MySQL 教程

创建两张表

首先,我们需要创建两张表,一张表是用来插入数据的,另一张表是用来存储每个ID的。以下是创建两张表的SQL语句:

CREATE TABLE table1 (
  id INT PRIMARY KEY,
  name VARCHAR(50)
);

CREATE TABLE table2 (
  id INT PRIMARY KEY,
  data VARCHAR(50)
);
Mysql

table1表用来插入数据。table2表用来存储每个ID。

现在,我们已经创建了两张表,接下来,我们需要向table2表中插入一些数据,以便于我们进行演示。下面是一个简单的示例:

INSERT INTO table2 (id, data)
VALUES (1, 'data1'), (2, 'data2'), (3, 'data3');
Mysql

这个SQL语句向table2表中插入了三个行,每个行中包含了一个id和一个data

编写SQL语句

现在,我们已经创建了两张表并向table2表中插入了一些数据。接下来,我们需要编写SQL语句来实现我们的需求。

以下是SQL语句:

INSERT INTO table1 (id, name)
SELECT id, 'name' FROM table2;
Mysql

这个SQL语句将向table1表中插入与table2表中每个ID相同的行。这些行中每个都包含了一个id和一个名称name(这里使用了一个静态字面量)。

在这个SQL语句中,我们使用了INSERT INTOSELECT这两个关键字。INSERT INTO用来向table1表中插入数据。SELECT用来从table2表中选择需要插入到table1表中的数据。同时,我们还使用了FROM关键字来告诉MySQL我们从哪个表中选择数据。

示例

让我们来看一个具体的示例,来说明这个SQL语句是如何工作的。

假设我们已经在table2表中插入了以下数据:

id data
1 data1
2 data2
3 data3

现在,我们执行以下SQL语句:

INSERT INTO table1 (id, name)
SELECT id, 'name' FROM table2;
Mysql

执行结果如下:

id name
1 name
2 name
3 name

这个SQL语句向table1表中插入了三个行,每个行中包含了一个id和一个名称name

总结

MySQL中向另一个表的每个ID插入行是一个非常常见的需求。通过使用上面介绍的SQL语句,我们可以很方便地实现这个需求。希望这篇文章能够帮助你更好地理解如何在MySQL中实现这个功能。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册