我在尝试插入记录时遇到问题我不想重复.这个问题不同于我在谷歌找到的任何解决方案,所以这里是:
我有TABLE1和TABLE2,我想将TABLE1中的记录插入TABLE2,所以我使用这个查询:
INSERT INTO table1
SELECT *
FROM table2
WHERE table2.importId NOT IN
(
SELECT importId
FROM table1
);
仅当TABLE2保证不包含重复项importId时,此方法才有效.
因此,如果TABLE2有重复的importId,我想插入TABLE1,它不包含TABLE2中的importId.上面的脚本将继续插入记录,从而在TABLE1中创建重复的importId.
我已经尝试过:
INSERT INTO table1
SELECT *
FROM table2
WHERE NOT EXIST
(
SELECT importId
FROM table1
WHERE table1.importId <> table2.importId
);
出现相同的结果!现在我不得不写另一个查询来删除重复项.那么有没有解决这个问题的方法呢?
解决方法:
您需要使用disTINCT关键字,请参阅. https://www.w3schools.com/sql/sql_distinct.asp
INSERT INTO table1
SELECT disTINCT *
FROM table2
WHERE table2.importId NOT IN
(
SELECT importId
FROM table1
);
应该是你想要的,但如果你不需要只在一列上有重复项,我认为GROUP BY关键字将起作用.也许这样的事情
INSERT INTO table1
SELECT *
FROM table2
WHERE table2.importId NOT IN
(
SELECT importId
FROM table1
) GROUP BY (table2.importId);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。