这是一个正确的查询来获取我需要的信息

时间:2011-10-25 23:54:32

标签: mysql sql

SELECT

table1.id

From 
table1
Join 
table2
ON 
table1.id = table2.id 

WHERE 
table1.`date` BETWEEN CURDATE() - INTERVAL 1 MONTH AND CURDATE();

连接表记录集是

id  customer    date
1   john        2011-01-01
2   john1       2011-02-02
3   john2       2011-03-03
4   john3       2011-04-04
5   john4       2011-05-05
6   john5       2011-06-06
7   john6       2011-07-07
8   john7       2011-08-08
9   john8       2011-09-09
10  john9       2011-10-10
11  john10      2011-10-11

我想知道这是否是正确的where子句,以查找日期超过30天的客户。

2 个答案:

答案 0 :(得分:4)

我没有在SQL中看到table2的重要性,所以也许这样做......

select id, customer, date
  from table1
 where datediff(curdate(), date) > 30

答案 1 :(得分:2)

WHERE 
table1.`date` BETWEEN CURDATE() - INTERVAL 1 MONTH AND CURDATE() ;

将在今天和一个月之前为您提供date的所有行。如果这是你想要的,请保持查询。

如果您希望date以前的所有行都超过一个月,请使用:

WHERE 
table1.`date` < CURDATE() - INTERVAL 1 MONTH ;    

或者这个(与之前的结果不完全相同):

WHERE 
table1.`date` < CURDATE() - INTERVAL 30 DAY ;