inner-join - 带有 INNER JOIN 的 HANA SQL 脚本 INSERT INTO 无法插入值
问题描述
我对 SQL 很陌生,希望你能帮助我解决我的问题。
我有一个名为、、和Order_Status_Form_3
列的表。Order_ID (KEY)
Customer_ID
Customer_Unique_ID
Status(KEY)
Date
表格已填满,但Customer_Unique_ID
列除外。
要填写此列,我需要引用链接到 的Customer
表,因此正确的 ID 覆盖正确的位置。当in等于表中的 the 时,应将给定的值插入到 in 的列中。Customer_ID
Customer_Unique_ID
Customer_ID
Order_Status_Form_3
Customer_ID
Customer
Customer_Unique_ID
Customer_Unique_ID
Order_Status_Form_3
我尝试将 aINSERT INTO
与 a结合使用SELECT
,INNER JOIN
但收到一条错误消息:
“无法插入 NULL 或更新为 NULL:Order_ID”。
我猜程序不清楚在哪里插入找到的值并尝试插入所有列。我搜索了类似的问题,但找不到针对我的具体问题的任何令人满意的答案。
这是我使用的代码:
Insert Into "HXE_109"."Order_Status_Form_3" ("Customer_Unique_ID")
Select customer."customer_unique_id"
From "HXE_109"."Customer" As customer
Inner Join "HXE_109"."Order_Status_Form_3" As OrderStatus3
On OrderStatus3."Customer_ID" = customer."customer_id"
WHERE
我试图通过在末尾附加 a 来指定插入值的位置,但收到了相同的错误。
Where OrderStatus3."Customer_ID" = customer."customer_id"
有谁知道如何解决这个问题并且可以告诉我我的错误在哪里?
提前感谢您阅读这个冗长的问题并留下答案。
编辑
我尝试使用update
,但似乎我无法正确使用。
Update "HXE_109"."Order_Status_Form_3"
Set "Customer_Unique_ID" = (Select customer."customer_unique_id"
From "HXE_109"."Customer" As customer
Inner Join "HXE_109"."Order_Status_Form_3" As OrderStatus3
On OrderStatus3."Customer_ID" = customer."customer_id")
现在我收到以下错误:
单行查询返回多于一行
我需要在这里使用Where
条件吗?
对不起我的愚蠢。:(
解决方案
正如我可以关注的评论一样,您想要做的是运行 UPDATE 语句
请检查以下 DML 命令
Update "HXE_109"."Order_Status_Form_3"
Set
"Customer_Unique_ID" = customer."customer_unique_id"
From "HXE_109"."Order_Status_Form_3" As OrderStatus3
Inner Join "HXE_109"."Customer" As customer
On OrderStatus3."Customer_ID" = customer."customer_id"
如果我尝试解释错误消息:
“无法插入 NULL 或更新为 NULL:Order_ID”。
这与定义为 NOT NULL 的字段有关。因此,在您的目标表中 ORDER_ID 被定义为“非空”,因此在 INSERT 中您必须为其提供一个值或将其定义为您的 HANA 表定义中的标识字段
第二个错误:单行查询返回多行
这与 SQL 引擎期望一个值而不是一组值的情况有关。因此,您将结果分配给 Customer_Unique_ID 字段的 SELECT 语句返回超过 1 个值。在这种情况下,SQL 引擎会引发异常
推荐阅读
- resharper - R# 参数提示,如何关闭它?
- node.js - npm start 命令给出 ELIFECYCLE 错误,errno 1
- django - Django外键字段过滤问题
- java - 未为加密/解密初始化密码
- matlab - 为什么我的第三个 MATLAB 函数在使用 ode45 时只输出零?
- shell - 来自不同数据文件的事件的直方图
- java - 如何解决不兼容类型错误?
- javascript - 用 JS 和时刻操作日期/时间
- excel - 在 Excel 中使用公式将小数点更改为逗号后保持自定义数字格式的文本
- tensorflow - tensorflow 估计器多次调用与亚当一起训练