본문 바로가기
MySql

MySQL INNER JOIN 후 여러 테이블에서 최대 날짜 가져 오기

by 베이스 공부 2021. 1. 4.
반응형

다음 두 테이블이 있습니다.

table 1)
ID |  HOTEL ID | NAME 
1       100      xyz 
2       101      pqr
3       102      abc


table 2)
ID | BOOKING ID | DEPARTURE DATE | AMOUNT
1         1       2013-04-12        100
2         1       2013-04-14        120
3         1       2013-04-9          90
4         2       2013-04-14        100
5         2       2013-04-18        150
6         3       2013-04-12        100

MAX DEPARTURE DATE로 테이블 2의 행을 가져 오도록 mysql에서 결과를 얻고 싶습니다.

ID | BOOKING ID | DEPARTURE DATE | AMOUNT
2         1       2013-04-14        120
5         2       2013-04-18        150
6         3       2013-04-12        100

 

해결 방법

 

SELECT  b.ID,
        b.BookingID,
        a.Name,
        b.departureDate,
        b.Amount
FROM    Table1 a
        INNER JOIN Table2 b
            ON a.ID = b.BookingID
        INNER JOIN
        (
            SELECT  BookingID, MAX(DepartureDate) Max_Date
            FROM    Table2
            GROUP   BY BookingID
        ) c ON  b.BookingID = c.BookingID AND
                b.DepartureDate = c.Max_date


 

참조 페이지 https://stackoverflow.com/questions/16082238

 

 

반응형

댓글