标量子查询包含多行

Mul*_*ard 5 sql h2

我正在使用 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_SERVICECUSTOMER。为此,我已经向用户添加了电子邮件列。我希望能够通过我的查询来做到这一点,但显然不能。

Gor*_*off 2

您的查询在语法上无效(所有子查询都必须用括号括起来)。

您缺少的是关联子句。我相信你想要:

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)