2016-06-14 4 views
0

Я не понимаю, что мне нужно сделать, чтобы получить значение из другого столбца объединенной таблицы при использовании MAX().Получить соответствующий столбец значение MAX в MySQL

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_reports также содержит столбец под названием CLOSER. Как я могу получить это значение для строки, соответствующей 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

Смежные вопросы