如何从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
)。