mysql의 GROUP BY로 그룹화된 최신 레코드 가져오기
예를 들어, 사용자가 탐색한 페이지를 기록하는 표
user_page_logs
가 있다고 가정합니다.갑자기 생각난 SQL은 다음과 같다.
SELECT * FROM user_page_logs WHERE user_id = 111 GROUP BY page_id ORDER BY created DESC;
상술한 집행 결과는 다음과 같다.page_id가 1인 그룹은 열람 시간
2017-05-20 20:00:00
의 기록을 원했지만 2017-05-03 10:00:00
의 기록을 얻었다.Group By 이후 order By를 주문한 것 같아서 기대한 결과를 얻지 못할 것 같습니다.
id는 AUTOINCREMENT를 전제로 하지만 다음 SQL을 통해 얻을 수 있습니다.
SELECT * FROM user_page_logs WHERE id IN(
SELECT MAX(id) FROM user_page_logs WHERE user_id = 111 GROUP BY page_id
);
Reference
이 문제에 관하여(mysql의 GROUP BY로 그룹화된 최신 레코드 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bitarx/items/87aa7f19c7cb1e34beb6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)