mysql - 用其他列中的值替换列值
问题描述
我有一个表“公司”,其中包含彼此有关系的公司。我想将“合作伙伴”栏中的公司名称替换为对应的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
)
解决方案
使用JOIN
:
UPDATE Companies c JOIN
Companies cp
ON c.Partner = cp.Company
SET c.Partner = cp.id;
推荐阅读
- excel - VBA 保存的工作簿不会打开到最后一个活动工作表
- angularjs - angular-ui-swiper:未定义 swiper
- python - 如何解析非零填充的微秒?
- tensorflow - 用正确的损失函数对抗类别不平衡:IoU、Dice 还是 2-class Dice?
- visual-studio-code - 从 VS Code 路径变量中提取段
- django - 如何确保每次调用视图时代码都运行 - Django
- spring-boot - 使用 Springboot Application 处理 HttpSession 属性
- bash - 将 2 行组合在一起但“交错”
- python - 如果值匹配,则将一维数组 (K,1) 转换为具有 1 或 0 的 2D 共识/协议数组 (K,K)
- python - 如果日期范围在开始日期和结束日期之间,则将类别附加到列