从一组MySQL选项中选择最新一行

时间:2016-07-28 15:48:51

标签: 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)

它似乎只返回每行的一个版本,但不幸的是它似乎不是最新版本。

有人可以帮我设置查询吗?所有数据都包含在一个表中,因此我没有使用任何连接。

1 个答案:

答案 0 :(得分: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);