gpt4 book ai didi

php - INSERT INTO WHERE NOT IN or NOT EXIST where table origin 有重复项

转载 作者:可可西里 更新时间:2023-11-01 07:57:59 24 4
gpt4 key购买 nike

我在尝试插入不想重复的记录时遇到问题。这个问题与我在谷歌中找到的任何解决方案都不同,所以这里是:

我有 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com