2011-08-22 72 views
1

之間confilict我這個表我的SQL數據庫:如何讓記錄

ID  Start  End 
---------------------- 
1  03:00  05:20 
2  04:10  06:21 
3  06:30  07:50 
4  07:30  08:00 
5  08:30  15:00 

我怎樣才能得到所有行,其中次衝突?

感謝

+0

你能對你的問題詳細點嗎?什麼定義了衝突?重疊時間?如果你不這樣做,我想這個問題在這裏不會很久。 – Jacob

+0

重疊時間 –

+0

您的意思是,我如何防止系統產生重疊時間的電池?或者你的意思是我如何讓系統在發生衝突時發出警報,或者你的意思是,我如何獲得衝突時間作爲結果記錄集,以便我可以知道哪些行發生衝突?如果你想要更多的建議來挑選下一位讀者。 – none

回答

1

這應該這樣做

SELECT t1.id 
      , t1.start 
      , t1.[end] 
      , t2.id clashId 
    FROM times t1 
    INNER JOIN times t2 on (t1.start between t2.start and t2.[end] 
    OR  t1.[end] between t2.start and t2.[end]) 
    AND  t1.id <> t2.id 
+0

謝謝你分享這個。剛剛學會了一些光滑!希望OP也能得到這個,儘管他的問題很模糊。 – Maverik

相關問題