更新记录以从相关记录之一设置值
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
中删除该列。
假设我有以下表格。
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
中删除该列。