본문 바로가기
MySql

MySQL SQL 조인은 MAX (날짜)를 얻습니다.

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

이 테이블이 있습니다.

테마별 최신 공지를 받고 싶습니다.

SELECT id_theme, n.id
FROM notice_theme
LEFT JOIN (
    SELECT id, cdate
    FROM notice
    ORDER BY cdate DESC
) AS n ON notice_theme.id_notice = n.id
GROUP BY id_theme

결과가 좋지 않습니다. 아이디어 ? 감사.

 

해결 방법

 

이 문제를 해결하는 데는 여러 가지 방법이 있지만 저는 이런 식으로하는 데 익숙합니다. 모든 ID 에 대해 최신 cDate 를 별도로 계산하려면 추가 하위 쿼리가 필요합니다.

SELECT  a.*, c.*
FROM    theme a
        INNER JOIN notice_theme b
            ON a.ID = b.id_theme
        INNER JOIN  notice c
            ON b.id_notice = c.ID
        INNER JOIN
        (
            SELECT  a.id_theme, MAX(b.DATE_CREATE) max_date
            FROM    notice_theme a
                    INNER JOIN notice b
                        ON a.ID_Notice = b.ID
            GROUP   BY a.id_theme
        ) d ON  b.id_theme = d.id_theme AND
                c.DATE_CREATE = d.max_date


 

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

 

 

반응형

댓글