1242 Subquery returns more than 1 row 解决方法

一、情况说明

执行以下语句:

update corp_stockholder_info a set a.STOCKHOLDER_NAME =(select CORP_NAME from corp_info c where c.CORP_KEY=a.STOCKHOLDER_CORP_KEY) 

出现1242 Subquery returns more than 1 row报错

二、报错说明

在MySQL中遇到了子查询返回多行的错误。
当子查询返回多行,但SQL语句只期望一行时,就会发生此错误。

select CORP_NAME from corp_info c where c.CORP_KEY=a.STOCKHOLDER_CORP_KEY

查出一个CORP_KEY对应多个CORP_NAME

三、报错解决

方法1. select CORP_KEY,count(*) from corp_info group by CORP_KEY having count(CORP_KEY)>1;

以上sql语句查出哪个CORP_KEY对应多个CORP_NAME,手动修改好。

方法2.使用聚合函数,如MAX()或MIN(),实现从子查询返回单个值。

你可能感兴趣的:(积跬步,mysql,sql,数据库,java)