答案 0 :(得分:3)
错误非常明显。我很确定它指的是这个子查询:
(select uud.user_id
from user_device uud
where ud.dev_id = uud.dev_id and assigned = 1
)
显然,这个子查询在某些情况下会返回多行。一个快速而又脏的修复方法是将and rownum = 1
添加到where
子句中。
您可以通过运行来确定重复项的位置:
select uud.dev_id, count(*) as cnt
from user_device uud
where uud.assigned = 1
group by uud.dev_id
having count(*) > 1;