让我们说今天是2013年11月16日
并且,假设我有一个日期表,如此
------------------------
id | foreign_id | date
------------------------
1 | 1 | 2013-11-01 05:42:38
2 | 2 | 2013-11-04 04:21:22
3 | 2 | 2013-11-16 15:11:55
我想选择那些过去24小时没有记录的条目。
ie:id#3今天是15:11,所以我不想选择2的foreign_id
。
我尝试在Cake find api
条件
'HOUR(TIMEDIFF(NOW(), Traffic.accessed)) > 24'
其中,流量是某个表,并且访问的是某个日期字段。 不幸的是,这仍然会选择此记录,因为它发现以前的条目的日期超过24小时。
请帮忙。
更新
我的实际查询是这样的
SELECT Traffic.accessed, Traffic.access_ip, Traffic.client_order_id
FROM `mdb`.`client_orders` AS `ClientOrder`
LEFT JOIN `geclicks`.`traffics`
AS `Traffic` ON (`Traffic`.`client_order_id` = `ClientOrder`.`id`)
WHERE `ClientOrder`.`status` = 'ACTIVE' AND `ClientOrder`.`offer_clicks` = 0
AND NOT (`ClientOrder`.`offer_id` = 0) AND ((`Traffic`.`access_ip` IS NULL)
OR (((`Traffic`.`access_ip` <> "444")
OR (((HOUR(TIMEDIFF(NOW(), MAX(`Traffic`.`accessed`))) > 24)
AND (`Traffic`.`access_ip` = "444"))))))
GROUP BY `Traffic`.`client_order_id` ORDER BY RAND() ASC
答案 0 :(得分:1)
选择所有内容:
SELECT * FROM Records
现在让我们过滤掉坏的外键(例如1,2和3):
SELECT * FROM Records WHERE foreign_id NOT IN (1, 2, 3)
暂停公园......我们如何找到24小时内有条目的foreign_id
:
SELECT DISTINCT foreign_id FROM Records WHERE TIMEDIFF(CURRENT_TIMESTAMP(), date) <= 24
将其重新插入原始内容而不是(1, 2, 3)
示例:
SELECT * FROM Records WHERE foreign_id NOT IN (SELECT DISTINCT foreign_id FROM Records WHERE TIMEDIFF(CURRENT_TIMESTAMP(), date) <= 24)