반응형
데이터가있는 레코드가 포함 된 테이블이 있으며 각 레코드는 카테고리에 속합니다. 다음과 같은 테이블이 있다고 가정 해 봅시다.
ID | Category | Title | Date
--------------------------------------
1 | Cat 1 | Ttl 1 | 2013-02-18
2 | Cat 2 | Ttl 2 | 2013-02-18
3 | Cat 1 | Ttl 3 | 2013-02-20
내가 좋아하는 것은 각 카테고리별로 하나의 기사 만 가져 오는 것이며 내가 가져올 기사는 표에서 최신 기사 여야합니다.
보다 깊이있는 결과는 다음과 같아야합니다.
ID | Category | Title | Date
--------------------------------------
2 | Cat 2 | Ttl 2 | 2013-02-18
3 | Cat 1 | Ttl 3 | 2013-02-20
보시다시피 각 범주별로 하나의 레코드 (Cat 1에 대한 레코드와 Cat 2에 대한 레코드) 만 있으며 Cat 1의 레코드 중 최신 레코드가 있습니다.
MySQL 쿼리에서 어떻게 번역 할 수 있습니까?
해결 방법
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT Category, MAX(date) max_date
FROM tableName
GROUP BY Category
) b ON a.category = b.category AND
a.date = b.max_date
성능 향상을 위해 Category, date
열에 복합 INDEX
를 추가합니다.
또는
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT Category, MAX(ID) max_ID
FROM tableName
GROUP BY Category
) b ON a.category = b.category AND
a.ID = b.max_ID
참조 페이지 https://stackoverflow.com/questions/15028852
반응형
'MySql' 카테고리의 다른 글
MySQL 관련 성별 MySQL 순서 (0) | 2021.01.12 |
---|---|
MySQL MYSQL-조인으로 쿼리 삭제 (0) | 2021.01.12 |
MySQL mysql 명령 줄에서 데이터베이스 복원 (0) | 2021.01.12 |
MySQL mysql에서 업데이트 된 행 선택 (0) | 2021.01.12 |
MySQL 삽입 트리거 후 MySQL이 작동하지 않음 (0) | 2021.01.11 |
댓글