从另一个表插入多行,但插入的记录应该是不同的

为此,可以将DISTINCT与INSERT INTO SELECT语句一起使用。让我们首先创建一个表-

mysql> create table DemoTable1
(
   Value int
);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1 values(50);
mysql> insert into DemoTable1 values(10);
mysql> insert into DemoTable1 values(10);
mysql> insert into DemoTable1 values(60);
mysql> insert into DemoTable1 values(50);
mysql> insert into DemoTable1 values(70);
mysql> insert into DemoTable1 values(50);

使用select语句显示表中的所有记录-

mysql> select *from DemoTable1;

这将产生以下输出-

+-------+
| Value |
+-------+
|    50 |
|    10 |
|    10 |
|    60 |
|    50 |
|    70 |
|    50 |
+-------+
7 rows in set (0.00 sec)

以下是创建第二个表的查询。

mysql> create table DemoTable2
(
   Marks int
);

以下是从另一个表插入多行的查询。插入的记录应该是不同的-

mysql> insert into DemoTable2(Marks) select distinct Value from DemoTable1;
Records: 4 Duplicates: 0 Warnings: 0

使用select语句显示表中的所有记录-

mysql> select *from DemoTable2;

这将产生以下输出-

+-------+
| Marks |
+-------+
|    50 |
|    10 |
|    60 |
|    70 |
+-------+
4 rows in set (0.00 sec)