MySQL,根据日期列选择行

时间:2017-08-10 10:25:00

标签: mysql datetime

我有一个包含两列的表,例如:

X         Date
A         2017-08-10
B         2016-12-19         
C         2017-06-13
D         2017-07-20
E         2017-07-14

我希望避免选择比X = D的行中的数据早一周以上的数据。 我尝试了一些问题:

SELECT * FROM table WHERE Date < (SELECT Date FROM table where X='D') - INTERVAL 1 WEEK

但这对我不起作用。 输出应该是:

X         Date
A         2017-08-10
D         2017-07-20
E         2017-07-14

我认为我接近解决这个问题,但对我来说有点帮助可能很重要。

2 个答案:

答案 0 :(得分:1)

这是一条鱼

SELECT x.* 
  FROM my_table x
  JOIN my_table y
    ON y.date - INTERVAL 1 WEEK < x.date
   AND y.x = 'd';

答案 1 :(得分:-1)

SELECT * FROM table WHERE
Date > (SELECT DATE_SUB(Date, INTERVAL 7 DAY)  FROM table where X='D')

SELECT * FROM table
WHERE Date > (SELECT DATE_SUB(Date, INTERVAL 1 WEEK)  FROM table where X='D')

您可以在此处查看SQL Fiddle Demo

尝试以上查询。