반응형
테이블 : uuid, 버전, 날짜 시간
버전은 고유하지 않지만 주어진 uuid에 대해 최신 날짜 시간이있는 행만 가져 오는 것입니다.
SELECT * FROM table WHERE uuid = 'bla'GROUP BY 버전 ORDER BY datetime desc
... 물론 datetime asc 결과를 얻습니다. 그룹을 desc로 "사전 주문"하여 최신 버전 만 가져 오도록하는 방법이 있습니까?
해결 방법
테이블에는 3 개의 필드 만 있고 uid로 필터링하고 있으므로 JOIN없이 MAX를 사용할 수 있습니다.
SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version
그러나 테이블에 더 많은 필드가 있거나 uid
로 필터링하지 않는 경우 먼저 각 버전에 대한 MAX 날짜 시간을 가져온 다음 행을 선택해야합니다.
SELECT t.uuid, t.version, t.datetime
FROM table t JOIN (
SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version
) r ON t.version = r.version AND t.datetime = r.Maxdatetime
WHERE t.uuid='bla'
ORDER BY t.datetime desc
참조 페이지 https://stackoverflow.com/questions/4687827
반응형
'MySql' 카테고리의 다른 글
MySQL에서 제외하는 대안 (0) | 2020.10.23 |
---|---|
MySQL의 경도 및 위도 내 쿼리 (0) | 2020.10.23 |
MySQL SQL로 성경을 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.23 |
MySQLi를 찾을 수 없음 Dockerized PHP (0) | 2020.10.23 |
MySQL : 열에 단어 목록의 단어가 포함됨 (0) | 2020.10.23 |
댓글