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天的客户。
答案 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 ;