gpt4 book ai didi

MYSQL 如果值不存在,则将值插入到另一个表中

转载 作者:行者123 更新时间:2023-11-29 10:52:04 25 4
gpt4 key购买 nike

我正在从一个 Mysql 表写入另一个表,我需要检查我插入的值是否已经存在。我尝试在正在检查值的两列上设置索引(onhand.Sales_Orderonhand.SKU)

这是我的查询:

INSERT INTO onhand(Sales_Order, SKU, Inventory, Time)
SELECT Sales_Order, Part_Number, '0', Now() AS DateTimeStamp from
fullfillment_sage WHERE New_OnHand IN (-1, 0, 'NULL') OR New_OnHand IS NULL
WHERE NOT EXISTS (SELECT
`fullfillment_sage`.`Sales_Order`,
`fullfillment_sage`.`Part_Number`
FROM `fullfillment_sage`
LEFT JOIN `onhand`
ON `fullfillment_sage`.`Sales_Order` = `onhand`.`Sales_Order`
AND `fullfillment_sage`.`Part_Number` = `onhand`.`SKU`
WHERE `fullfillment_sage`.`New_OnHand` IN (-1, 0, 'NULL') OR
`fullfillment_sage`.`New_OnHand` IS NULL);

这里的查询错误:

 'WHERE NOT EXISTS (SELECT `fullfillment_sage`.`Sales_Order`, 

最佳答案

您的外部选择中有两个 where 语句。将第一个的 or 括在 () 中,并将第二个 where 更改为 and。

INSERT INTO onhand(Sales_Order, SKU, Inventory, Time)
SELECT Sales_Order
, Part_Number
, 0
, Now() AS DateTimeStamp
FROM fullfillment_sage
WHERE (New_OnHand IN (-1, 0, 'NULL') OR New_OnHand IS NULL)
AND NOT EXISTS (SELECT `fullfillment_sage`.`Sales_Order`
, `fullfillment_sage`.`Part_Number`
FROM `fullfillment_sage`
LEFT JOIN `onhand`
ON `fullfillment_sage`.`Sales_Order` = `onhand`.`Sales_Order`
AND `fullfillment_sage`.`Part_Number` = `onhand`.`SKU`
WHERE `fullfillment_sage`.`New_OnHand` IN (-1, 0, 'NULL')
OR `fullfillment_sage`.`New_OnHand` IS NULL);

这假设选择没有其他问题,我还没有仔细观察。

我认为不应插入字符串“0”的库存,我认为它应该是 0。尽管隐式转换可能会帮助您。

也许 new_onhand 需要消除 'null',因为您有 or.... 或者您可以将 (New_OnHand IN (-1, 0, 'NULL') OR New_OnHand IS NULL) 更改为...coalesce(New_OnHand,0) IN (-1, 0) 如果 New_Onhand 为 null,则将其设置为零,并确保 new_onhand 为 -1 或 0。

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

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