各位大神帮忙一下解决下这个报错 Subquery returns more than 1 row

时间:2022-09-05 08:06:26
 Subquery returns more than 1 row(mysql)

sql语句如下:
select a.party_id, a.parent_party_id,a.lan_id,a.org_level,a.region_id,a.channel_type,
(select ch.parent_channel_id from es_org_channel ch where ch.channel_id=a.channel_type and ch.source_from =a.source_from) parent_channel_id, 

(select c.org_name from es_organization c where a.parent_party_id = c.party_id and c.status_cd='00A' and c.source_from='CTWH') parent_org_name, 
a.org_code, a.org_name, a.org_level, a.org_type_id, b.org_type_name  , 

(SELECT F.LAN_NAME FROM ES_LAN F WHERE A.LAN_ID = F.LAN_ID and F.source_from='CTWH') lan_name, 

(SELECT G.REGION_NAME FROM ES_COMMON_REGION G WHERE A.REGION_ID = G.REGION_ID and G.source_from='CTWH') city_name, 


a.org_content, a.union_org_code from es_organization a, es_organization_type b where a.org_type_id = b.org_type_id and a.parent_party_id='1600100815261549600001' and a.status_cd='00A' and a.source_from = b.source_from and a.source_from = 'CTWH' order by a.party_id

3 个解决方案

#1


一共用到了 4 个子查询,看看具体是哪个出错了;

子查询一下子,找到了 2+ 记录,不知道应该给你返回哪个了,所以报了这个错出来;

#2


能否加个distinct   在前面可以吗

#3


引用 2 楼 guajing9220 的回复:
能否加个distinct   在前面可以吗


可以加,但是不一定能解决问题。

如果查出来的两个值相同,还可以,如果不同,还是会出现这个问题的;

#1


一共用到了 4 个子查询,看看具体是哪个出错了;

子查询一下子,找到了 2+ 记录,不知道应该给你返回哪个了,所以报了这个错出来;

#2


能否加个distinct   在前面可以吗

#3


引用 2 楼 guajing9220 的回复:
能否加个distinct   在前面可以吗


可以加,但是不一定能解决问题。

如果查出来的两个值相同,还可以,如果不同,还是会出现这个问题的;