我有一个新的迁移,通过名为organization_member
的联结表在用户和组织之间创建多对多关系。由于我尝试将organization_id
表上的user_id
和user
的当前值迁移到联结表来表示这种关系,我想我会尝试加入和更新,但是我似乎无法弄清楚如何查询两个表,然后获取user
上的现有列并更新当前不存在关系的位置。这是我最初的想法:
UPDATE `om`
SET `om`.`user_id` = `u`.`user_id`, `om`.`organization_id` = `u`.`organization_id`
FROM `user` AS `u`
LEFT JOIN `organization_member` AS `om`
ON `u`.`user_id` = `om`.`user_id`
WHERE `u`.`organization_id` IS NOT NULL;
但我在
收到错误'FROM `user` AS `u`
LEFT JOIN `organization_member` AS `om`
ON `u`.`user_id` = `o' at line 3
任何帮助都会很棒!
答案 0 :(得分:0)
在MySQL中,JOIN
是UPDATE
的一部分。没有单独的FROM
:
UPDATE `user` `u` JOIN
`organization_member` `om`
ON `u`.`user_id` = `om`.`user_id`
SET `om`.`user_id` = `u`.`user_id`,
`om`.`organization_id` = `u`.`organization_id`
WHERE `u`.`organization_id` IS NOT NULL;
LEFT JOIN
也不合适。您想要更新om
,因此您需要一个匹配的行进行更新