A表关联B表,B表关联C表,用UPDATE把A表的某个字段值改成C表的字段值
时间: 2024-02-11 13:06:07 浏览: 105
可以使用以下SQL语句实现:
```
UPDATE A
SET A.field = C.field
FROM A
INNER JOIN B ON A.b_id = B.id
INNER JOIN C ON B.c_id = C.id
WHERE <条件>
```
其中,`A.field`表示要更新的字段,`C.field`表示要更新成的值,`A.b_id`是A表中关联B表的字段,`B.id`是B表的主键字段,`B.c_id`是B表中关联C表的字段,`C.id`是C表的主键字段,`<条件>`是更新数据的条件。
需要注意的是,不同的数据库系统可能对UPDATE语句的语法有所差异,上述语句可能需要根据具体情况进行调整。
相关问题
oracle A表关联B表,B表关联C表,用UPDATE把A表的某个字段值改成C表的字段值
您可以使用Oracle的UPDATE语句来实现A表关联B表,B表关联C表,并将A表的某个字段值改成C表的字段值。示例SQL语句如下:
```
UPDATE A
SET A.field_name = C.field_name
FROM A
INNER JOIN B ON A.key = B.key
INNER JOIN C ON B.key = C.key
```
其中,A、B、C分别代表三个表的名称,field_name代表要修改的字段名称,key代表连接三个表的关键字。请根据您的实际情况替换表名和字段名称。
select u.org_id as orgId, u.mobile, o.org_name as orgName from djd_user u inner join sys_org o on u.org_id = o.org_id; 这条SQL能不能改成判断当o.org_name等于指定值时修改u.mobile等于'***'
可以使用以下SQL语句来实现:
UPDATE djd_user u
SET u.mobile = '***'
WHERE u.org_id IN (
SELECT o.org_id
FROM sys_org o
WHERE o.org_name = '指定值'
);
这个SQL语句会在sys_org表中查找org_name等于指定值的记录,并使用INNER JOIN将其与djd_user表中的记录关联。然后使用UPDATE语句将djd_user表中所有org_id等于sys_org表中org_id的记录中mobile字段的值修改为'***'。