如何从mysql表中选择唯一记录

如何从mysql表中选择唯一记录,mysql,sql,Mysql,Sql,我有两张桌子 table1 id|col1|col2|col3 table2 id|colA|colB|colC 这两个表都将作为主键 表1中的col1是唯一的,不允许重复值。我正在尝试将数据从表2迁移到表1。列按以下方式映射 table1.id => table2.id table1.col1 => table2.colA table1.col2 => table2.colB table1.col3 => table2.colC 我使用以下查询来迁移数据

我有两张桌子

table1

id|col1|col2|col3 

table2 

id|colA|colB|colC
这两个表都将作为主键

表1中的col1是唯一的,不允许重复值。我正在尝试将数据从表2迁移到表1。列按以下方式映射

table1.id => table2.id
table1.col1 => table2.colA
table1.col2 => table2.colB
table1.col3 => table2.colC
我使用以下查询来迁移数据

inert into table1 select id,colA,colB,colC from table2
Mysql抱怨可乐有重复的价值。然后我用

insert into table1 select id,distinct(colA),colB,colC from table2 
Mysql抱怨语法错误。请您帮助我编写正确的查询,以便将数据从表2迁移到表1


谢谢

实际上,用这种方式保存时,您可能会丢失一些数据。因为如果同一colA的colB和colC不同,则只保存其中一行

您可以使用以下查询:

INSERT INTO table1 
    SELECT id,colA,colB,colC 
    FROM table2
    GROUP BY colA;

table1
此时是否为空?@ypercube-是的,此时它为空。如果
table2
中有两行或更多行在
colA
中具有相同的值,该怎么办?哪个应该被插入到
表1
?@ypercube:我现在就放弃它。放弃两个(或全部)副本?或者随机选择一个并插入?-1这实际上可能会导致表2中不同行的值(列
id
colB
colC
)。