programing

max()를 사용하여 그룹을 사용하여 SQL을 다른 테이블로 이행합니다.

prostudy 2022. 9. 14. 21:35
반응형

max()를 사용하여 그룹을 사용하여 SQL을 다른 테이블로 이행합니다.

다음과 같은 문제가 생겼습니다.테이블이 두 개 있는데 열 데이터를 다른 테이블로 이동하려고 합니다.

테이블은 집집마다 있다.칼럼 데이터 '스트리트'를 집으로 옮기고 싶습니다.그러나 집에는 여러 개의 문이 있습니다(같은 house_id).그래서 그것들을 종합해서 최신 'created_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)

내 생각엔 네가 정말로 원하는 것 같아요update쿼리, 값 설정street의 기존 행에house.

옵션 중 하나는 row-limitig 구를 사용한 관련 서브쿼리입니다.

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

limit구문은 데이터베이스에 따라 다르지만 (거의) 모두 동일한 기능을 가지고 있습니다.

언급URL : https://stackoverflow.com/questions/62564361/sql-insert-into-another-table-migration-with-group-by-having-max

반응형