MYSQL选择活动日期的记录

时间:2014-06-24 17:06:37

标签: mysql

嗨,我有一个问题,我被困在哪里,我想选择活跃日期的记录。以下是我的代码:

SELECT DISTINCT
    Table1.Field1,  
    Table2.Field1,  
    Table3.Field1,
FROM Table1
           inner join Table2 on Table1.Field1 = Table2.Field1
           inner join Table3 on Table1.Field1 = Table3.Field1   
WHERE Table1.Field1 IN (SELECT Table4.Field1 FROM Table4)           

Table1.Field1是我的ID字段,由于日期字段而具有多行,Table3.Field1是日期字段。我只想要具有活动日期的行,例如,这里有一行包含多行:

Table1.Field1  Table3.Field1

12345           2013-09-11   
12345           2013-12-11  
12345           2014-03-11  
12345           2014-06-11  
12345           2014-09-17

我想从这条记录中获取的行是:12345 2014-06-11,因此我不想在将来拉任何行,但我想从过去拉出最新的活动行,如果这是有道理的。在此先感谢!

1 个答案:

答案 0 :(得分:1)

我更喜欢这类数据结构的有效结束日期。但你仍然可以得到你想要的东西:

select t1.*
from table1 t1
where t1.date = (select max(t11.date)
                 from table1 t11
                 where t11.field1 = t1.field1 and
                       t11.date <= now()
                );

即,以最大日期\小于或等于当前日期来拉取id的记录。