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)。我希望它适用于所有记录。任何可以执行此操作的程序代码
当我尝试程序时,我收到错误
子查询返回的值超过1。
当子查询跟随时,这是不允许的,但为了使其与通用表一起使用,它必须返回多个值。如何做到这一点?
答案 0 :(得分:0)
为此,您需要在同一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
这将更新所有拥有父母的公司。