我们有一个“交易”表,记录了我们网站上发生的各种事件。特别需要在其上运行夜间“清理”过程。这是我的专栏(简化):
id, txName, brandName, visitorID, txDate
这是我想要检索的内容(散文):
“{1}}来自
txName's
的{{1}}在过去6周内未记录”READ“vistiorID's
(基于txName
)特定txDate
1}}。完全可能(并且可能){6}窗口期间brandName
将对多个visitorID
“阅读”txName's
。我们只有5brandName
所以我完全满足于为单个brandName's
构建流程并重复5次。
我的大脑只能进行2次MySQL SELECT查询(6周之前的记录,6周内的记录),然后循环几次以获得一系列必须处理的最终记录。但我确信有一种WAAAAY更有效的方式,我只是不明白。
我希望这是有道理的...谢谢任何可以提供帮助的人。我认为让我搞砸的部分是试图选择那些没有记录交易的人,而不是拥有的人
答案 0 :(得分:0)
您可以尝试以下方式:
SELECT DISTINCT(visitorID)
FROM transactions
WHERE txName = "READ"
AND txDate <= '$6weeksago'
GROUP BY brandName
其中$6weeksago
是在PHP中创建的变量,用于表示所需格式(not sure if it was a date or Unix timestamp)
中截止6周的时间。
我没有测试过这个,因为我没有桌子,但我认为这就是你所追求的!