2016-07-28 3 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 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);