THE*_*HEn 0 sql sql-server join
我有两张桌子可以为SKU提供信息.
日志表有datetimefield 2008-10-26 06:21:59.820
其他表有datetimefield 2008-10-26 06:22:02.313
我想在这两个表的连接中包含这个日期时间字段.
是否可以加入具有差异不超过3秒的日期时间字段的表?最好的方法是什么?
这是一种方法:
select * from table_a, table_b
where table_a.sku = table_b.sku
and abs(datediff(second,table_a.datetime,table_b.datetime))<=3
Run Code Online (Sandbox Code Playgroud)
小心,大表这种连接可能会非常慢.
SELECT
t1.id,
t2.id
FROM
t1
INNER JOIN t2 ON ABS(DATEDIFF(ms, t1.datefield, t2.datefield)) <= 3000
WHERE
...
Run Code Online (Sandbox Code Playgroud)
当心,这将是缓慢的.并且可能并不总是正确的(因为:它不会总是连接应该加入的记录,因为它们属于一起,它当然总是在技术上是正确的).
编辑:
ABS(DATEDIFF(ss, t1.datefield, t2.datefield)) <= 3因为@ richardtallent在评论中的出色观察而改变了上述内容.
| 归档时间: |
|
| 查看次数: |
2246 次 |
| 最近记录: |