标量子查询包含多行 [英] Scalar subquery contains more than one row

查看:20
本文介绍了标量子查询包含多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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;

现在我在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)

此错误告诉我什么?

编辑

我希望通过查询实现的目标:

实际上,每个CUSTOMER都有一个CUSTOMER_SERVICE。我只是想将COLUMN EMAILCUSTOMER_SERVICE移动到CUSTOMER表。为此,我已经向用户添加了一个电子邮件栏。我希望我的查询能够做到这一点,但显然做不到。

推荐答案

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

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

UPDATE CUSTOMER c
    SET EMAIL = (SELECT cs.EMAIL
                 FROM CUSTOMER_SERVICE s
                 WHERE s.ID = c.CUSTOMER_SERVICE_ID
                );

我不知道这应该是什么:[90053-192] 90053/90053 (Hilfe)

这篇关于标量子查询包含多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆