更新记录以从相关记录之一设置值

Update record to set value from one of related records

假设我有以下表格。

CREATE TABLE Companies 
(
    Id int IDENTITY(1, 1) NOT NULL,
    Name nvarchar(50),
    Location nvarchar(100),
    BusinessType int
);

CREATE TABLE Employees 
(
    Id int IDENTITY(1, 1) NOT NULL,
    CompanyId int NOT NULL,
    FirstName nvarchar(50),
    LastName nvarchar(50),
    SSN nvarchar(32),
    BusinessType int
);

我如何编写一个查询,将 Companies.BusinessType 设置为与该公司关联的一名员工的 Employees.BusinessType

可以安全地假设与一家公司关联的所有员工都将拥有相同的业务类型。因此,价值来自哪个相关员工并不重要。

您真的应该只在 companies table 中存储此信息一次。但这不是你要问的。

您可以使用相关子查询将 table 更新为任意匹配的业务类型:

update companies
    set businesstype = (select top (1) e.businesstype
                        from employees e
                        where e.companyid = companies.id
                       );

设置值后,您可能应该从 employees 中删除该列。