我和交易员(TRADERS)及其主管有一张桌子。 (监管者本身就是另一张为交易员提供新监管人(NEWSUPERVISORS)的表。
TRADERS - traderid,名称主管, NEWSUPERVISORS - traderid,主管
我需要为新主管更新主管的TRADERS表。
update traders set e.supervisor = n.supervisor from traders join
(select traderid, supervisor from new_supervisor n) on e.traderid= n.traderid
此查询不起作用。请问您能否告知此查询有什么问题。
答案 0 :(得分:0)
有些SQL查询根本无法更新。"您必须采用替代方法,例如使用运行一个查询的存储过程来获取需要更新的trader_id
,然后,可能在TRANSACTION
中循环此结果集依次针对每个update
发出个别trader_id
个问题。
答案 1 :(得分:0)
这是标准SQL:
update traders
set supervisor = (
select n.supervisor
from new_supervisor n
where traders.traderid = n.traderid
)
where exists (
select *
from new_supervisor n
where traders.traderid = n.traderid
);