mysql错误:子查询返回超过1行
我在这里使用了两个表mysql错误:子查询返回超过1行,mysql,mysql-error-1242,Mysql,Mysql Error 1242,我在这里使用了两个表projections\u report p和access\u rights a。我不知道为什么会出现错误: 子查询返回多行 我尝试使用所有和任何关键字。请帮忙 提前谢谢。我试着用另一种方式做,结果做对了。首先,我将第二个case语句的else条件中的语句更改为 (select distinct gl_sal_chan from access_rights where userid = paramUserid) 因为两者都返回相同的结果(我的坏),其次我将整个条件更改为 (
projections\u report p
和access\u rights a
。我不知道为什么会出现错误:
子查询返回多行
我尝试使用所有和任何关键字。请帮忙
提前谢谢。我试着用另一种方式做,结果做对了。首先,我将第二个case语句的else条件中的语句更改为
(select distinct gl_sal_chan from access_rights where userid = paramUserid)
因为两者都返回相同的结果(我的坏),其次我将整个条件更改为
(case when (paramChannel = 'AllC' && dc_lob = 0) then '%' = '%' else
(case when (paramChannel='AllC' && dc_lob != 0) then
gl_sal_chan in (select distinct gl_sal_chan from access_rights where userid = paramUserid)
else gl_sal_chan= paramChannel end)end)
无论如何,谢谢@all:)在子查询中使用LIMIT只返回一条记录,因为您使用的是distinct,它可能会返回多条记录错误说明了一切,官方文档也对此进行了解释。请共享此查询的所有代码,因为共享代码似乎只是其中的一部分。因此,它可以让观众更好地理解,以更好的方式回答。实际上,子查询必须返回多个记录,因此我使用的是distinct和in关键字。但不管怎样,谢谢,我现在就拿到了@桑什
(case when (paramChannel = 'AllC' && dc_lob = 0) then '%' = '%' else
(case when (paramChannel='AllC' && dc_lob != 0) then
gl_sal_chan in (select distinct gl_sal_chan from access_rights where userid = paramUserid)
else gl_sal_chan= paramChannel end)end)