SQL 通过 max() 插入到另一个带有组的表迁移中



我遇到了以下问题。我有两个表,想将一列数据移动到另一个表。

桌子是房子和门。我想将列数据"街道"移动到房子。但是房子有多扇门(house_id相同(。所以我需要聚合它们,并希望从最新的"created_at"记录中获取"街道"输入。

情况

我的第一个尝试是:

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

我怀疑您实际上想要一个update查询,以在house中的现有行上设置street的值。

一个选项是带有行限制子句的相关子查询:

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

limit语法因数据库而异 - 但(几乎(都具有等效的功能。

最新更新