gpt4 book ai didi

mysql - 如果 MySQL 中不存在行,则将一个表中的行插入到另一个表中

转载 作者:行者123 更新时间:2023-11-29 20:28:22 27 4
gpt4 key购买 nike

当表 B 中尚不存在该日期时,我试图将表 A 中的日期插入到表 B 中。我使用了 NOT EXISTS 函数,但日期似乎并未像我希望的那样填充。

为了提供更多背景信息,表 B 是总账,一天内可以有零笔或多笔交易,表 A 是 Assets 负债表,每天有一个条目,无论总账中是否有交易。

这是我使用的 SQL 代码:

INSERT INTO gl_account_type_descriptions 
(Company_Name, `Account ID`, `Date`)
SELECT Company_Name,
`Account ID`,
`Date`
FROM all_balance_sheet
WHERE NOT EXISTS (
SELECT DISTINCT Company_Name, Account ID`, `Date`
FROM gl_account_type_descriptions
)

最佳答案

您缺少 NOT EXISTS 部分中的条件:

INSERT INTO gl_account_type_descriptions 
(Company_Name, `Account ID`, `Date`)
SELECT Company_Name, `Account ID`, `Date`
FROM all_balance_sheet AS bal
WHERE NOT EXISTS (
SELECT Company_Name, `Account ID`, `Date`
FROM gl_account_type_descriptions AS acc
WHERE bal.Company_name = acc.Company_name
AND bal.`Account ID` = acc.`Account ID`
AND bal.`Date` = acc.`Date`
)

我还删除了多余的 DISTINCT 子句,因为它不是必需的,而且会减慢查询速度。

关于mysql - 如果 MySQL 中不存在行,则将一个表中的行插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176737/

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