作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在尝试插入不想重复的记录时遇到问题。这个问题与我在谷歌中找到的任何解决方案都不同,所以这里是:
我有 TABLE1 和 TABLE2,我想将记录从 TABLE1 插入到 TABLE2,所以我使用这个查询:
INSERT INTO table1
SELECT *
FROM table2
WHERE table2.importId NOT IN
(
SELECT importId
FROM table1
);
这仅在 TABLE2 保证不包含重复的 importId 时有效。因此,如果 TABLE2 具有重复的 importId,并且我想插入到不包含来自 TABLE2 的 importId 的 TABLE1 中。上面的脚本将持续插入记录,从而在 TABLE1 中创建重复的 importId。
我已经试过了:
INSERT INTO table1
SELECT *
FROM table2
WHERE NOT EXIST
(
SELECT importId
FROM table1
WHERE table1.importId <> table2.importId
);
同样的结果出现了!现在我不得不编写另一个查询来删除重复项。那么有没有办法解决这个问题呢?
顺便说一句,我在 phpmyadmin 中使用 MYSQL。
最佳答案
为此,您需要使用 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);
关于php - INSERT INTO WHERE NOT IN or NOT EXIST where table origin 有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088213/
我是一名优秀的程序员,十分优秀!