我有一个带有字段的用户表
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;