"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL에서 특정 일수만큼 다른 이벤트 이후의 이벤트를 찾는 방법은 무엇입니까?

MySQL에서 특정 일수만큼 다른 이벤트 이후의 이벤트를 찾는 방법은 무엇입니까?

2024년 11월 11일에 게시됨
검색:227

How to Find Events Following Another Event by a Specific Number of Days in MySQL?

MySQL 셀프 조인 이해

SQL 데이터베이스에 사용되는 기술인 셀프 조인을 사용하면 테이블 자체를 쿼리할 수 있습니다. 이 경우 MySQL 셀프 조인을 자세히 살펴보고 시작 날짜가 지정된 일수만큼 다른 이벤트 뒤에 오는 이벤트를 찾습니다.

쿼리 분석:

SELECT event2.id, event2.startdate, event2.price
FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
WHERE event1.id=$id;

1. 데이터 추출(FROM)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

이 부분은 자체 조인을 위해 event1과 event2로 표시되는 mm_eventlist_dates 두 테이블에서 데이터를 추출합니다.

2. 조인 조건(ON)

ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)

이 조건은 두 테이블 간의 조인을 정의합니다. 이는 이벤트2의 시작 날짜가 이벤트1의 종료 날짜로부터 1일 후와 같아야 함을 지정합니다.

3. 필터링(WHERE)

WHERE event1.id=$id

이 필터는 지정된 $id와 일치하는 ID가 있는 이벤트로 결과를 제한합니다.

4. 필드 선택(SELECT)

SELECT event2.id, event2.startdate, event2.price

이 부분은 결과 집합에 포함되어야 하는 event2 테이블의 필드를 지정합니다. ID , 시작 날짜 및 가격.

작동 방식:

  1. 쿼리는 다음으로 시작됩니다. mm_eventlist_dates 테이블에서 두 세트의 레코드를 추출합니다.
  2. 조인 조건은 시작 날짜가 이벤트1 레코드의 종료 날짜로부터 1일 후와 일치하는 이벤트2 레코드를 필터링하여 결과 범위를 좁힙니다.
  3. 필터가 적용됩니다. 사용자가 지정한 $id를 사용하여 event1 레코드를 더욱 세분화합니다.
  4. 반환된 결과에는 event1 다음에 오는 이벤트를 하나씩 나타내는 event2 테이블의 원하는 필드가 포함됩니다. 낮.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3