我有一个表“ companies”,其中包含彼此有联系的公司。我想用相应的ID替换“合作伙伴”列中的公司名称。
ID Company Partner
1 Company A Company B
2 Company B Company C
3 Company C Company B
应成为:
ID Company Partner
1 Company A 2
2 Company B 3
3 Company C 2
我已经尝试过了,但是收到一个错误,表明子查询返回了多个结果:
UPDATE Companies c1
SET Partner =
(SELECT DISTINCT c2.ID FROM Companies c3 JOIN Companies c2 ON c3.Partner = c2.Company
WHERE c1.Partner = c3.Partner
)
答案 0 :(得分:2)
使用JOIN
:
UPDATE Companies c JOIN
Companies cp
ON c.Partner = cp.Company
SET c.Partner = cp.id;
答案 1 :(得分:0)
您可以在合作伙伴名称和公司名称上尝试使用此“ INNER JOIN”。
Update p set p.partner = pt.id from partner as p inner join (
select id, company from partner ) AS PT on p.partner=pt.company