这就是我想要的:
查看从同一个FK创建的最高值是否超过X天。
这是数据的结构(这不是下面查询的结果):
TABLE_1
id | FK_table_2 | created
-------------------------------------------------------
1 | 20 | 2013-11-12 12:13:14
2 | 20 | 2013-11-12 11:10:12
3 | 21 | 2013-10-02 12:53:20
4 | 21 | 2013-09-02 12:54:20
注意:执行子查询将会变慢。
我想出的是:
SELECT *
FROM table_1
GROUP BY FK_table_2
HAVING MAX(created) < NOW() - INTERVAL 3 DAY
我担心 HAVING MAX(已创建)没有garantuee来使用最高创建。
还有其他方法吗?
答案 0 :(得分:0)
我认为您不需要使用MAX子句,您可以选择超过3天的所有行并对其进行处理。
SELECT DISTINCT FK_table_2 FROM table_1
WHERE created > NOW() - INTERVAL 3 DAY;
更新这不起作用: - (
答案 1 :(得分:0)
试试这个
SELECT FK_table_2,max(created)
FROM table_1
where created < NOW() - INTERVAL 3 DAY
GROUP BY FK_table_2