Mysql 使用时间条件sql连接两个表

Mysql 使用时间条件sql连接两个表,mysql,sql,Mysql,Sql,我试图连接两个表,但问题是,作为一个条件,我需要它们的字段“时间”大致相同 让我写得更清楚一点,这就是我到目前为止想做的事情 SELECT location FROM retailer LEFT JOIN imovo ON retailer.time=imovo.time. 现在,我真正需要的不是:retailer.time=imovo.time,但我需要retailer表中字段的秒数与imovo时间字段的秒数之差不大于4秒 让我解释一下,假设零售商的时间字段是:11:11:23,如果来自im

我试图连接两个表,但问题是,作为一个条件,我需要它们的字段“时间”大致相同

让我写得更清楚一点,这就是我到目前为止想做的事情

SELECT location
FROM retailer
LEFT JOIN imovo
ON retailer.time=imovo.time.
现在,我真正需要的不是:retailer.time=imovo.time,但我需要retailer表中字段的秒数与imovo时间字段的秒数之差不大于4秒

让我解释一下,假设零售商的时间字段是:11:11:23,如果来自imovo的时间介于:11:11:23和11:11:26之间,我应该加入这两个表

那么,你能帮我解决这个问题吗?
谢谢

按小时和分钟进行连接,并添加where子句作为

伪码
where(imovo.time-retailer.time)<4秒

我还没有测试过,但我认为它应该可以工作:

imovo.time between retailer.time and retailer.time + interval 4 second
。。。
ON addtime(retailer.time,'0:0:4')imovo.time

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_subtime

如果您想按照之前的海报建议的那样,在小时和分钟内加入,您可以尝试内置的小时和分钟功能。见:

参考和有用的页面:


[]

我认为MySQL不支持INTERVAL(无法在手册中快速找到),如果ti支持,请将@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

谢谢,现在,我需要在不同的字段中设置小时/分钟/秒吗?或者如果你把它们放在一起可以做到吗?嘿,谢谢你的回答:)我会测试它,但它似乎足够合理!再次感谢!:)往下读一点,你就会看到
间隔
符号。酷!我查看了手册的文字值部分,没有找到它。奇怪的是,INTERVAL不支持作为数据类型,这正是我在寻找的。
SELECT location
FROM retailer
LEFT JOIN imovo
ON TO_SECONDS(imovo.time) BETWEEN TO_SECONDS(retailer.time) - 4 AND TO_SECONDS(retailer.time) + 4