gpt4 book ai didi

MySQL - 将两个表合并为第三个表而不重复

转载 作者:行者123 更新时间:2023-11-29 02:28:38 25 4
gpt4 key购买 nike

我很难围绕这里的一个概念思考。我拥有的是三个结构相同的表。我需要将 table 1table 2INSERT INTO table 3 组合。我的问题:

表 1表 2 有重复的内容,异常(exception)是它们的 ID。但是,除了 AI 之外,我没有将 ID 用于任何其他用途,所以这真的不是问题。

我想要完成的一个例子是:

                        original TABLE 1
_________________________________________________________
| ID | Col 2 | Col 3 | Col 4 |
|---------------------------------------------------------|
| 1 | stuff_1 | stuff_2 | stuff_3 |
|---------------------------------------------------------|
| 2 | stuff_x | stuff_y | stuff_z |
|_________________________________________________________|

合并

                        original TABLE 2
_________________________________________________________
| ID | Col 2 | Col 3 | Col 4 |
|---------------------------------------------------------|
| 3 | stuff_1 | stuff_2 | stuff_3 |
|---------------------------------------------------------|
| 4 | stuff_a | stuff_b | stuff_c |
|_________________________________________________________|

制作

combined TABLE 3 (notice ID's are not counted in duplicate check)
_________________________________________________________
| ID | Col 2 | Col 3 | Col 4 |
|---------------------------------------------------------|
| ? | stuff_1 | stuff_2 | stuff_3 |
|---------------------------------------------------------|
| ? | stuff_x | stuff_y | stuff_z |
|---------------------------------------------------------|
| ? | stuff_a | stuff_b | stuff_c |
|_________________________________________________________|

我试过 insert into table 3 select * from table 2; 然后从表 1 中执行 insert ignore。我试过 replace into 也一样,但是因为我省略了 ID,所以它们不起作用,因为列数已关闭。有没有人知道如何在处理 ID 问题时将这两个合并到第三个表中?我要重申,ID 是什么并不重要,因为它们永远不会被使用。

最佳答案

您可以使用 GROUP BY 来消除重复项,同时保留 ID 值。

这将为您提供唯一的 Col1Col2Col3 值,并将 ID 设置为合并为重复的任何行的最小 ID 值:

INSERT INTO Table3 (ID, Col1, Col2, Col3)
SELECT MIN(ID), Col1, Col2, Col3
FROM (
SELECT ID, Col1, Col2, Col3 FROM Table1
UNION SELECT ID, Col1, Col2, Col3 FROM Table2
) Table1And2
GROUP BY Col1, Col2, Col3

根据您发布的数据,结果应该是这样的:

ID    Col1     Col2     Col3
-- ------- ------- -------
1 stuff_1 stuff_2 stuff_3
2 stuff_a stuff_b stuff_c
4 stuff_x stuff_y stuff_z

关于MySQL - 将两个表合并为第三个表而不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16676975/

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