MySQL 데이터베이스에서 어떻게 그룹을 구성한 후 각 그룹의 마지막 기록을 조회합니까?

969 단어
문제 설명
예를 들어 MySQL 데이터베이스에 데이터 테이블messages과 데이터 기록이 있는데 다음과 같다.
Id   Name   Other_Columns
-------------------------
1    A       A_data_1
2    A       A_data_2
3    A       A_data_3
4    B       B_data_1
5    B       B_data_2
6    C       C_data_1
MySQL 질의문을 그룹화하는 경우 다음을 수행합니다.
select * from messages group by name

각 그룹name에 대한 첫 번째 데이터가 다음과 같이 반환됩니다.
1    A       A_data_1
4    B       B_data_1
6    C       C_data_1

그러면 name에 따라 그룹을 나누어 각 그룹의 마지막 데이터MySQL를 되돌려 주는 문장을 어떻게 조회합니까? 되돌려 주는 결과는 다음과 같습니다.
3    A       A_data_3
5    B       B_data_2
6    C       C_data_1

 
솔루션MySQLIN(...)자구를 사용하여 다음과 같다.
SELECT id, name, other_columns
FROM messages
WHERE id IN (
    SELECT MAX(id)
    FROM messages
    GROUP BY name
);

좋은 웹페이지 즐겨찾기