这个查询有什么问题?
select en.*,
       (select sf.red, sf.blue, sf.green, sf.yellow from data2 sf )
from data1 en;我有错误
ORA-01427:单行子查询返回多行。 01427。00000 -“单行子查询返回多行”
发布于 2019-09-09 11:02:33
这是您的查询:
select en.*,
       (select sf.red, sf.blue, sf.green, sf.yellow from data2 sf )
from data1 en;像这样使用的select中的子查询称为标量子查询。在可以使用标量值(即单个值,例如数字或字符串)的情况下,可以使用这样的子查询。
标量子查询必须满足两个条件:
在您的情况下,使用LEFT JOIN的解决方案很简单
select en.*, sf.red, sf.blue, sf.green, sf.yellow 
from data1 en left join
     data2 sf
     on 1=1;或者,在Oracle 12C中,您可以使用横向连接:
select en.*, sf.red, sf.blue, sf.green, sf.yellow 
from data1 en left join lateral
     data2 sf
     on 1=1;在这种情况下,两者看起来是一样的,但是横向连接也可以用于相关子查询。
https://stackoverflow.com/questions/57850905
复制相似问题