gpt4 book ai didi

mysql - 更新集 = 从中选择

转载 作者:行者123 更新时间:2023-11-29 04:19:04 24 4
gpt4 key购买 nike

我正在尝试使用此基于选择查询更新表:

UPDATE branches SET name = 
(SELECT CONCAT(comp.name," ",bra.subsurb) as newname
FROM companies comp
RIGHT JOIN branches bra
ON comp.id = bra.company_id)

其中,according to this question , 应该管用但这会产生错误:You can't specify target table 'branches' for update in FROM clause

不确定我做错了什么。

编辑:

最终这个查询完成了我想要的:

UPDATE branches bra LEFT JOIN companies comp
ON comp.id = bra.company_id
SET bra.name = CONCAT(comp.name,"",bra.subsurb)

最佳答案

错误本身很容易解释,您是从要更新的表中选择的。相反,您可以在更新语句中使用 JOIN。试试这个:

UPDATE branches b
LEFT JOIN companies c ON c.id = b.company_id
SET b.name = CONCAT(c.name, " ", b.subsurb);

请注意,因为您在此处使用左连接来选择所有分支机构,无论他们是否拥有公司,您可能会得到某些名称的空值,因此请注意这一点。

关于mysql - 更新集 = 从中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com