gpt4 book ai didi

sql - 从临时表中,仅插入新表中不存在的行。数据库

转载 作者:行者123 更新时间:2023-11-29 13:58:39 25 4
gpt4 key购买 nike

我有两个包含相同列的表。一个是我需要用作中间数据保存器的临时表,另一个是我的最终表。

CREATE TABLE scratch_table (
a text,
b text
);

CREATE TABLE final_table (
a text,
b text
);

scratch_table 有以下三行:

  a        |  b
-----------|------------
'text a 1' | 'text b 1'
'text a 2' | 'text b 2'
'text a 3' | 'text b 3'

final_table 有两行:

  a        |  b
-----------|-----------
'text a 1' | 'text b 1'
'text a 4' | 'text b 4'

我需要编写一个查询,获取 scratch_table 中的所有行,并仅插入 final_table 中不存在的行。 final_table 的末尾应该是:

  a        |  b
-----------|-----------
'text a 1' | 'text b 1'
'text a 2' | 'text b 2'
'text a 3' | 'text b 3'
'text a 4' | 'text b 4'

只有 'text a 4','text b 4' 行从 scratch_table 插入到 final_table,因为它之前不存在。

请注意,我使用的数字 (1-4) 不表示任何顺序,我只是想区分每一行的数据。谢谢!

最佳答案

EXCEPT 运算符是 ANSI SQL。它需要两组,并且仅返回第一组中第二组中不存在的行。

INSERT INTO final_table (a,b)
SELECT a, b
FROM scratch_table

EXCEPT

SELECT a, b
FROM final_table

EXCEPT 运算符将只返回不同的行。如果您不想删除重复项,请改用 EXCEPT ALL

关于sql - 从临时表中,仅插入新表中不存在的行。数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048982/

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