我左表中的每一行在右表中只有一個匹配(右表是包含所有行的主表;左表僅包含這些行的子集)。每個表中的行的時間戳不完全匹配,但通常在彼此的1秒內。因此,當我加入表格時,我必須使用:如何防止INNER JOIN返回多個匹配?
FROM left_table INNER JOIN right_table
ON left_table.timestamp BETWEEN right_table.timestamp - .00015 AND right_table.timestamp + .00015
--This is approximately a 2 second wide range since this is a DATETIME field
AND left_table.name = right_table.name
AND ........
除時間戳之外,其他所有條件都完全匹配。有沒有解決的辦法?
大多數情況下,這足以返回只有一行,但有時當一秒鐘內有兩個相同的行時,它們都會被返回。
你可以嘗試不同的,或TOP 1. – 2012-03-16 21:15:35
在您的where子句中的好方法,你的意思是 打開之間right_table.timestamp left_table.timestamp - 。 00015 AND right_table.timestamp + .00015 – David 2012-03-16 21:21:04
我想這就是我要做的。我只是重新評估了這個問題,我認爲只要我使用「DISTINCT」就可以返回多個結果。時間跨度非常狹窄,以至於我需要從連接中獲取標準。謝謝! – eek142 2012-03-16 21:22:21