使用MySQL一个表中的字段更新另一个表中字段

本文探讨了在SQL中使用更新语句时遇到的单行子查询返回多行错误,例如`single-row subquery returns more than one row`。通过示例展示了如何修正这类问题,包括修改单列和多列的更新操作,并提供了子查询的正确用法。同时,针对Oracle数据库的特定情况,提出了解决方案,强调了在子查询中确保匹配的唯一性以避免错误的发生。
摘要由CSDN通过智能技术生成

1、修改1列

update student s, city c
set s.city_name = c.name
where s.city_code = c.code;

2、修改多个列

update a, b
set a.title=b.title, a.name=b.name
where a.id=b.id

•子查询

update student s set city_name = (select name from city where code = s.city_code);

oracle查询报这个错误:single-row subquery returns more than one row怎么解决?

数据库按照你的条件查询有多个重复的数据。

UPDATE "SYS_ROLE" A
SET A ."DEPT_ID" = (
  SELECT
    c."id"
  FROM
    "his_department_info" c
  WHERE
    c."dept_name" = A ."ROLE_NAME"

如果以上sql语句报single-row subquery returns more than one row的错误,说明 c表”dept_name” 和A 表.”ROLE_NAME” 的这两个字段 数据重复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值