0

我有天数、版本和活动的表格。

在表中,我有相同的日子,其中 active = 1 和 active = 0 我需要从数据库中获取这些天,其中 active = 1 并且 version_id 是最大值。为此,我编写了以下查询:

SELECT 'MAX(version_id)',DAY, active FROM `day` group by day, active

但是第 28 天和第 29 天是重复的,所以当我使用“AND active = 0”时,它会显示第 28 天的 active = 1(并且 MAX(VERSION_ID) 较低,但不应该看到那一天。

查询结果:http ://screenshooter.net/0562655/27_05_2012__09_02_56

所以:“在 VERSION_ID 为 MAX 且 DAY IS ACTIVE 的所有日子里显示给我,如果 active = 0,则不显示早期版本”

4

2 回答 2

0

这是使用嵌套查询的方法:

SELECT * FROM `day`
WHERE `active` = 1 AND version_id = (
    SELECT MAX(version_id) FROM `day`
)
于 2012-05-27T07:19:55.987 回答
0

尝试这个 -

SELECT * 
FROM day
WHERE version_id IN (SELECT MAX(d.version_id) 
                    FROM day d
                    WHERE active = 1
                    GROUP BY d.day)
OR active = 0
于 2012-05-27T07:37:39.023 回答