본문 바로가기
MySql

MySQL 각 GROUP BY (unique_id) 및 ORDER BY 번호에서 MAX ID가있는 SELECT 행

by 베이스 공부 2020. 11. 10.
반응형

id, unique_id 및 order_number가있는 테이블이 있습니다.

또한 WHERE 절이 거의 없습니다. 이것은 작동하지 않는 내 시도입니다.

SELECT MAX(id) AS id
     , order_number
  FROM table 
 WHERE final = 0 
   AND username = '$username' 
   AND active = 1 
 GROUP 
    BY unique_id 
 ORDER 
     BY order_number

 

해결 방법

 

쿼리를 하위 쿼리로 사용할 수 있습니다.

SELECT *
FROM table 
WHERE id IN (SELECT MAX(id) AS id
             FROM table 
             WHERE final=0 AND username='$username' AND active=1 
             GROUP BY unique_id) 
ORDER BY order_number

또는 id 가 고유하지 않은 경우 JOIN 을 사용합니다.

SELECT t1.*
FROM table AS t1
JOIN (SELECT MAX(id) AS max_id, unique_id
      FROM table           
      WHERE final=0 AND username='$username' AND active=1 
      GROUP BY unique_id
) AS t2 ON t1.unique_id = t2.unique_id AND t1.id = t2.unique_id
ORDER BY order_number

 

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

 

 

반응형

댓글