更新表中的行时出错

时间:2016-03-21 13:57:06

标签: mysql sql

我在更新行时收到错误“SQLCODE:-811”。我知道错误是由于我的内部查询返回多个值。我需要知道如何正确关联查询。请帮我查询!

if subview is MKNewAnnotationContainerView {
}

内部查询检查具有组的值并为这些列选择rank,accesgrpref。我必须为naccesgrpref等于内部查询中的naccesgrpref值的部分设置这些值。

请在此查询中帮助我。

1 个答案:

答案 0 :(得分:2)

据推测,你打算这样:

update hpl.kamodt C
    set (NRANK, chghlightacces) = 
             (select NRANK, chghlightacces
              from (select naccesgrpref, NMOD, count(*)
                    from hpl.kamodt
                    where naccesgrpref is not null and NMOD is not null
                    group by naccesgrpref, NMOD
                    having count(naccesgrpref) > 1
                   ) B
              where C.naccesgrpref = B.naccesgrpref and
                    C.NMOD = B.NMOD
             )
    where C.naccesgrpref = C.NACCES;

这是(智能)猜测。相关子查询应该引用外部查询中的表。你的版本没有相关性,所以它返回重复的事实并不令人惊讶。