>데이터 베이스 >MySQL 튜토리얼 >두 SQL 테이블 사이의 겹치는 시간 간격을 찾는 방법은 무엇입니까?

두 SQL 테이블 사이의 겹치는 시간 간격을 찾는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-03 21:44:43158검색

How to Find Overlapping Time Intervals Between Two SQL Tables?

SQL에서 두 테이블 사이의 겹치는 시간 간격 찾기

시작 및 종료 시간 필드가 포함된 두 테이블이 있는 데이터베이스에서는 이 작업이 필요한 경우가 많습니다. 시간 간격이 교차하는 행을 식별합니다. 이 질문은 WHERE 절을 사용하여 SQL Server 2005에서 이러한 중복을 효율적으로 찾는 솔루션을 제공합니다.

해결책:

다음 쿼리를 사용하여 중복 시간을 찾을 수 있습니다. table1과 행 사이의 간격 table2:

SELECT * 
FROM table1,table2 
WHERE table2.start <= table1.end 
AND (table2.end IS NULL OR table2.end >= table1.start)

설명:

쿼리는 JOIN 조건을 사용하여 두 테이블의 시간 간격을 비교합니다. WHERE 절은 두 가지 조건을 사용합니다.

  1. table2.start <= table1.end 행 2(table2)의 시작 시간이 행의 종료 시간 이전 또는 동시에 발생하도록 보장합니다. 1 (table1).
  2. (table2.end IS NULL OR table2.end >= table1.start)은 종료 시간이 다음과 같은 경우를 처리합니다. table2의 값은 NULL이거나 table1의 시작 시간 이후에 발생합니다. 이 조건을 사용하면 겹치는 간격이 캡처됩니다.

이 WHERE 절은 행 2의 시간 간격이 행 1의 시간 간격과 교차하는지 여부를 효과적으로 결정합니다. 조인을 사용하면 쿼리가 행을 효율적으로 검색합니다. 그러한 중복이 존재하는 두 테이블 모두에서.

위 내용은 두 SQL 테이블 사이의 겹치는 시간 간격을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.