sql通过max()插入另一个表迁移

dy2hfwbg  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(287)

我有以下问题。我有两个表,想把一列数据移到另一个表。
table是房子和门。我想把数据“street”列移到house。但是房子有多个门(具有相同的房屋id)。因此,我需要聚合它们,并希望从最新的“created\u at”记录中获取“street”输入。
情况
我的第一次尝试是:

insert into house h ('street') 
    select street 
    from door d 
    where d.house_id = h.id 
    group by house_id 
    having max(created_at)
vlf7wbxs

vlf7wbxs1#

我怀疑你真的想要 update 查询,设置 street 在中的现有行上 house .
一个选项是带有行限制子句的相关子查询:

update house 
set street = (
    select d.street
    from door d
    where d.house_id = house.id
    order by created_at desc
    limit 1
)

这个 limit 不同数据库的语法各不相同,但(几乎)所有数据库都具有相同的功能。

相关问题