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

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

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

  1. insert into house h ('street')
  2. select street
  3. from door d
  4. where d.house_id = h.id
  5. group by house_id
  6. having max(created_at)
vlf7wbxs

vlf7wbxs1#

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

  1. update house
  2. set street = (
  3. select d.street
  4. from door d
  5. where d.house_id = house.id
  6. order by created_at desc
  7. limit 1
  8. )

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

相关问题