Update company set comp_wholesale=(select comp_wholesale from company
where comp_companyID=100 and comp_isparent='Y' )
where comp_parentcompany=1200
我需要执行此操作并更新所有工作正常的内容,但是我如何才能对整个表执行此操作,我的意思是在没有显式定义 ID(1200 和 100)的情况下。我希望它适用于所有记录。任何可以执行此操作的程序代码
当我尝试执行程序时,出现错误
Subquery returned more than 1 value.
当子查询跟随时,这是不允许的,但为了使其通用以处理整个表,它必须返回多个值。如何做到这一点?
最佳答案
为此,您需要在同一 SQL 中引用表 company
两次。使用别名(在本例中我选择了 c1
和 c2
),以便查询优化器知道您指的是哪一个:
Update company c1
inner join company c2
on c2.comp_companyID=c1.comp_parentcompany
set c1.comp_wholesale=c2.comp_wholesale
where c1.comp_parentcompany is not null
这将更新所有拥有母公司的公司。
关于mysql - 亨德尔返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453374/