根据条件更新公司



我有一个带有字段的用户表

Name, email, CompanyId (foreign key to company table), TenantId

以及具有字段的表公司

Name, TenantId 

目前公司中的TenantId=0

我需要为每个公司找到一个用户,从用户表中获取TenantId,并将公司表中每个公司的TenantId从用户更改为TenantId

我为它写了这个SQL脚本

UPDATE companies
SET TenantId = (SELECT  a.TenantId
FROM (SELECT* FROM companies) AS c
LEFT JOIN abpusers AS a ON (c.Id = a.CompanyId) AND (c.Id = a.CompanyId)
ORDER BY c.Id, a.Id)
WHERE TenantId = 0;

但我得到这个错误是因为它返回了一个集合。

[21000][1242]子查询返回超过1行

我需要如何更新SQL查询?

尝试使用Joins而不是Sub Query

UPDATE Companies
LEFT JOIN abpusers a on companies.Id = a.CompanyId
SET Companies.TenantId = a.TenantId
WHERE Companies.TenantId = 3;

最新更新