我有桌子,有天,版本和活动。
在表格中,我有与active = 1和active = 0相同的日子 这些天我需要从数据库中获取,其中active = 1且version_id为max。 为此,我写了以下查询:
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为活动的所有日期,如果有效= 0,则不显示早期版本”
答案 0 :(得分:0)
这是使用嵌套查询执行此操作的方法:
SELECT * FROM `day`
WHERE `active` = 1 AND version_id = (
SELECT MAX(version_id) FROM `day`
)
答案 1 :(得分: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