我有以下更新声明,但它说
[42S22][1054] Unknown column 'b.user_id' in 'on clause'
UPDATE brands b set b.workspace_id = (
SELECT w.id from workspaces w
INNER JOIN users u on b.user_id = u.id
inner join team_members tm on u.id = tm.user_id
inner join teams t on tm.team_id = t.id AND w.id = t.workspace_id
);
基本上有
brands
和
workspaces
.新列
workspace_id
作为外键添加,并且可以通过关系找到工作区id
brand -> has user_id -> user has team -> team has workspace_id
在编程方面,我可以首先找到要处理的所有工作区,然后获取该工作区的所有用户ID,然后运行
update brands b set workspace_id = :wsId where user_id in (:userIds)
-- auto-generated definition
create table brands
(
id bigint auto_increment
primary key,
user_id int unsigned not null,
name varchar(100) null,
workspace_id int null
)