我正在尝试加入两个表,但问题是,作为一个条件,我需要他们的字段“时间”大致相同。
让我写一点清楚,这是我现在想做的事情。
SELECT location
FROM retailer
LEFT JOIN imovo
ON retailer.time=imovo.time.
现在,我真正需要的不是这个:retailer.time = imovo.time但是我需要零售商表中字段的秒数与imovo时间字段不超过4秒之间的差异。
让我解释一下,让我们假设零售商的时间字段说:11:11:23如果来自imovo的时间介于:11:11:23和11:11:26之间我应该加入这两个表
那么,你能帮我解决这个问题吗? 谢谢!
答案 0 :(得分:1)
我没有对此进行测试,但我认为它应该可行:
imovo.time between retailer.time and retailer.time + interval 4 second
答案 1 :(得分:1)
...
ON addtime(retailer.time, '0:0:4')<imovo.time
AND retailer.time >imovo.time
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_addtime http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_subtime
答案 2 :(得分:0)
按小时和分钟进行连接,并将where子句添加为
伪代码 其中(imovo.time - retailer.time)&lt; 4秒
答案 3 :(得分:0)
如果你想做一个早期的海报建议,并按小时和分钟加入你可以尝试内置的HOUR和MINUTE功能。参见:
参考文献&amp;有用的页面:
答案 4 :(得分:0)
我认为MySQL不支持INTERVAL(无法在手册中快速找到它),如果是的话,将@grossvogel的答案与+/- 4混合以使你的保证金在双方都有效。
SELECT location
FROM retailer
LEFT JOIN imovo
ON TO_SECONDS(imovo.time) BETWEEN TO_SECONDS(retailer.time) - 4 AND TO_SECONDS(retailer.time) + 4