【发布时间】:2020-02-27 00:01:41
【问题描述】:
我有下面的查询,我正在使用返回的子查询创建该查询
ORA-01427:单行子查询返回多于一行的错误。
但我想要子查询返回的所有值,并且连接条件没有其他列。以下是我的示例查询。
select name,
dob,
cdate,
(select value
from item a,
books b
where a.id = b.id
and a.newid = b.newid
and a.id = s.id
and a.bid = s.cid
and a.eventid=1) col_value,
(select value2
from item a,
books b
where a.id = b.id
and a.newid = b.newid
and a.id = s.id
and a.bid = s.cid
and a.eventid=1) col_value2
from sample s,
purchase p
where s.id = p.id
and s.cid = p.cid
期望的输出
我需要申请分组依据吗?请告诉我您的建议。
【问题讨论】:
-
LEFT JOIN改为子查询。 -
今日提示:始终使用现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接! -
请使用现代 JOIN 语法,自 SQL-92 起可用,即 28 年前。
-
那么,如果你有三个值,你想要哪一个?最小值、最大值、平均值、总和?
-
你说你“想要所有的价值观”。我认为这意味着您需要使用listagg。