繁体   English   中英

基于另一个表更新

[英]Update based on another table

我有下表(员工):

EmployeeId WorkingForId WorkingFor
34         45           NULL
34         66           NULL
34         78           NULL

我想根据另一个表(公司)更新 WorkingFor 列,如下所示:

CompanyId Name
45        SONY
66        HP
78        MICROSOFT
99        APPLE

所以我的预期输出将如下所示:

EmployeeId WorkingForId WorkingFor
    34         45       SONY
    34         66       HP
    34         78       MICROSOFT

您可以通过以下代码创建此表:

CREATE TABLE employees
    ([EmployeeId] int, [WorkingForId] int, [WorkingFor] varchar(40))
;

INSERT INTO employees
    ([EmployeeId], [WorkingForId], [WorkingFor])
VALUES
    (34, 45, NULL),
    (34, 66, NULL),
    (34, 78, NULL)
;


CREATE TABLE companies
    ([CompanyId] int, [Name] varchar(9))
;

INSERT INTO companies
    ([CompanyId], [Name])
VALUES
    (45, 'SONY'),
    (66, 'HP'),
    (78, 'MICROSOFT'),
    (99, 'APPLE')
;

您可以使用UPDATE语句中的连接来实现:

update e
set e.WorkingFor = c.Name
from employees e inner join companies c
on c.CompanyId = e.WorkingForId

请参阅演示
结果:

> EmployeeId | WorkingForId | WorkingFor
> ---------: | -----------: | :---------
>         34 |           45 | SONY      
>         34 |           66 | HP        
>         34 |           78 | MICROSOFT 

您可以使用这个简单的Update语句:

Update employees 
Set WorkingFor = c.Name
From companies c
Where CompanyId = employees.WorkingForId

输出 :

EmployeeId  WorkingForId    WorkingFor
34          45              SONY
34          66              HP
34          78              MICROSOFT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM