我正在使用 H2 数据库并想要移动一些数据。为此,我创建了以下查询:
UPDATE CUSTOMER
SET EMAIL = SELECT service.EMAIL
FROM CUSTOMER_SERVICE AS service
INNER JOIN CUSTOMER AS customer ON service.ID = customer.CUSTOMER_SERVICE_ID;
Run Code Online (Sandbox Code Playgroud)
当我现在在 H2 控制台中执行它时,出现以下错误:
Scalar subquery contains more than one row; SQL statement:
UPDATE CUSTOMER
SET EMAIL = SELECT service.EMAIL
FROM CUSTOMER_SERVICE AS service
INNER JOIN CUSTOMER AS customer ON service.ID = customer.CUSTOMER_SERVICE_ID [90053-192] 90053/90053 (Hilfe)
Run Code Online (Sandbox Code Playgroud)
这个错误告诉我什么?
编辑
我想通过查询实现什么:
其实每一个CUSTOMER都有一个CUSTOMER_SERVICE. 我只是想将其移至COLUMN EMAIL表格CUSTOMER_SERVICE中CUSTOMER。为此,我已经向用户添加了电子邮件列。我希望能够通过我的查询来做到这一点,但显然不能。
您的查询在语法上无效(所有子查询都必须用括号括起来)。
您缺少的是关联子句。我相信你想要:
UPDATE CUSTOMER c
SET EMAIL = (SELECT cs.EMAIL
FROM CUSTOMER_SERVICE s
WHERE s.ID = c.CUSTOMER_SERVICE_ID
);
Run Code Online (Sandbox Code Playgroud)
我不知道这应该是什么: [90053-192] 90053/90053 (Hilfe)。