SQL find duplicate data between two date ranges
最基本的範例如下:
SELECT t1.id -- 取得PK
FROM t t1
LEFT JOIN t t2 ON t1.種類=t2.種類 -- 種類相同。 可以加上其他條件,例如: 是否生效...
WHERE t1.id <> t2.id -- 自己不等於自己
AND (
(t1.起始時間 < t2.結束時間 AND t1.結束時間 > t2.起始時間) OR -- A 跟 B 比較
(t2.起始時間 < t1.結束時間 AND t2.結束時間 > t1.起始時間) OR -- B 跟 A 比較
(t1.起始時間 = t2.結束時間 AND t1.結束時間 = t2.起始時間) -- A 跟 B 完全相同
)