2016-07-28 4 views
0

У меня есть таблица, которая содержит набор опций и соответствующую цену. У нас реализовано управление версиями, что означает, что мы сохраняем несколько строк для одной и той же опции с разными временными метками. Каждый раз, когда мы делаем обновление цены, новая строка создается с меткой времени.Выберите последнюю строку из группы параметров MySQL

Я использую ниже запрос:

SELECT 
    localizedOptionID, 
    uProfileID, 
    sOptionID, 
    MAX(datestamp), 
    localOptionName, 
    quantities 
FROM 
    localisedProductOptions 
WHERE 
    uProfileID = 2 
    AND sOptionID in ('BGCD','Q6G1','3BET') 
GROUP BY sOptionID 
ORDER BY MAX(datestamp) 

Это, кажется, возвращаются только одна версия каждой строки, но, к сожалению, это, кажется, не будет последним.

Может ли кто-нибудь помочь мне настроить запрос? Все данные содержатся в одной таблице, поэтому я не использую никакого соединения.

+0

Не уверен, что, если я правильно читать ваш вопрос, но если я это выглядит как вам просто нужно изменить ваш ORDER BY заявление, попробуйте " ORDER BY datestamp DESC " –

+0

Спасибо за ваш ответ. Я не пытаюсь упорядочить результаты, а скорее возвращать только последнюю строку во всех результатах для одного данного sOptionID. – steeveroucaute

ответ

1

Вы можете попробовать нижеуказанный запрос, чтобы получить данные желания

select localizedOptionID, uProfileID,sOptionID, datestamp,localOptionName, 
quantities from localisedProductOptions WHERE uProfileID = 2 AND sOptionID in 
('BGCD','Q6G1','3BET') and datestamp in(select MAX(datestamp) from 
localisedProductOptions where uProfileID = 2 AND sOptionID in 
('BGCD','Q6G1','3BET') GROUP BY sOptionID); 
Смежные вопросы