gpt4 book ai didi

mysql - 用一个等效查询替换两个查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:57 24 4
gpt4 key购买 nike

这两个查询(工作正常)可以用一个代替吗?

INSERT INTO temptable 
(
`id`,`aggr`
)
select a.id, b.aggr
from main a
inner join (
select uk, group_concat(cascina_uk SEPARATOR '|') as aggr
from main
group by uk
) b on a.uk = b.uk;

update main, temptable set main.aggr = temptable.aggr where main.id=temptable.id;

我不需要创建临时表。我只需要更新 main.aggr 列。

最佳答案

使用MySQL的多表更新语法:

update main, (
select a.id, b.aggr
from main a
join (
select uk, group_concat(cascina_uk SEPARATOR '|') as aggr
from main
group by uk
) b on a.uk = b.uk
) temptable
set main.aggr = temptable.aggr
where main.id = temptable.id

请注意,我只是您查询的部分变成了一个有效的查询;我怀疑可以对子查询进行优化。

关于mysql - 用一个等效查询替换两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42669231/

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