2016-06-14 3 views
0

MAX()를 사용할 때 조인 된 테이블의 다른 열에서 값을 가져 오려면 어떻게해야하는지 알지 못합니다.MySQL에서 해당 열을 MAX 값으로 가져 오기

SELECT layout.NAME,layout.ID,MAX(inventory_reports.CLOSETIME) 
       FROM layout 
       LEFT JOIN inventory_reports ON layout.ID = inventory_reports.POSID 
       WHERE layout.INVENTORY = 1 AND layout.AVAILABLE = 1 
       GROUP BY layout.ID 
       ORDER BY layout.NAME 

inventory_reportsCLOSER라는 열이 포함되어 있습니다. MAX(inventory_reports.CLOSETIME)과 일치하는 행에 대해 해당 값을 얻으려면 어떻게해야합니까?

서브 쿼리에 합류하는 것을 시도해 보았습니다. 그러나 지금까지 모든 시도가 잘못된 결과를 제공했습니다.

답변

1

이 시도 :

SELECT l.NAME, 
     l.ID, 
     ir1.MAX_CLOSETIME, 
     ir2.CLOSER 
FROM layout AS l 
LEFT JOIN (
    SELECT POSID, MAX(inventory_reports.CLOSETIME) AS MAX_CLOSETIME 
    FROM inventory_reports 
    GROUP BY POSID 
) AS ir1 ON l.ID = ir1.POSID 
LEFT JOIN inventory_reports AS ir2 
    ON ir1.POSID = ir2.POSID AND ir1.MAX_CLOSETIME = ir2.CLOSETIME 
WHERE l.INVENTORY = 1 AND l.AVAILABLE = 1 
ORDER BY l.NAME, l.ID 
+0

예. 이것은 효과가 있었다. 더 자세히 살펴보고 여기서 무슨 일이 벌어지고 있는지 이해할 수 있는지 알아 보겠습니다. – nickdnk