gpt4 book ai didi

mysql - 合并唯一键包含多列的两个表

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:18 25 4
gpt4 key购买 nike

我有两个表 A 和 B(具有相同的模式),我想通过将 A 中的所有条目插入 B 中来合并它们。如果表 B 已经有与 A 中的键关联的数据,我想静默删除那些数据。

问题是表 B 有一个由三列组成的唯一键索引,所以我不能只说“WHERE A.key <> B.key”。

我似乎无法按照以下行来制定 SQL 语句:

INSERT INTO B 
VALUES ((SELECT * FROM A WHERE ... NOT IN ...))

有没有办法INSERT那些从 A 到 B 的行,其中对应的三列键在 B 中还不存在?

最佳答案

INSERT INTO B 
(Col1, Col2, Col3, ColN)
SELECT
A.Col1, A.Col2, A.Col3, COlN
FROM A
LEFT JOIN B
ON A.COL1 = B.Col1
AND A.COL2 = B.Col2
AND A.COL3 = B.Col3
WHERE B.Col1 IS NULL

本质上是用左连接连接 2 个表,并从 A 插入所有数据,其中 B 为空(B 表中没有对应的值用于 3 个键列上的连接)

关于mysql - 合并唯一键包含多列的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13511604/

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