MySQL 셀프 조인 이해
최근 쿼리에서는 MySQL의 셀프 조인 개념을 탐색했습니다. 목표는 하루 뒤에 다른 이벤트(Event1) 뒤에 오는 이벤트(Event2)에 대한 정보를 검색하는 것이었습니다. 쿼리가 성공적으로 실행되는 동안 해당 기능에 대한 추가 이해가 필요합니다.
쿼리 분석:
쿼리는 여러 개별 부분으로 나눌 수 있습니다.
-
데이터 검색:
- FROM mm_eventlist_dates event1: mm_eventlist_dates라는 테이블에서 데이터를 선택하고 별칭 event1을 할당합니다.
- JOIN mm_eventlist_dates event2: mm_eventlist_dates에서 자체 조인을 수행하여 event2라는 별칭의 두 번째 가상 테이블을 생성합니다.
-
조인 조건:
- ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY): event1의 종료 날짜에 하루를 더한 날짜와 일치하는 시작 날짜를 기준으로 event2 레코드를 필터링하는 조인 조건을 지정합니다.
-
필터링:
- WHERE event1.id = $id: event1 테이블을 필터링하여 지정된 ID를 가진 레코드만 검색합니다.
작동 방식:
-
레코드 선택: WHERE 절은 먼저 특정 이벤트(Event1)를 검색합니다. ID를 기준으로 합니다.
-
날짜 계산: date_add() 함수는 선택한 Event1의 종료 날짜 이후 다음 날을 계산합니다.
-
참여 필터링: 그런 다음 조인 조건은 시작 날짜가 계산된 날짜와 일치하는 event2의 레코드와 일치합니다.
-
데이터 추출: 마지막으로 SELECT 절은 event2 테이블에서 ID, 시작 날짜 및 가격의 세 가지 필드를 검색합니다. .
간단한 시각화:
각 이벤트에 ID, 시작 날짜 및 가격이 있는 두 개의 개별 이벤트 목록(이벤트1 및 이벤트2)을 상상해 보세요. 쿼리 단계는 다음과 같습니다.
- 지정된 ID로 Event1을 찾습니다.
- Event1 종료 날짜 이후의 다음 날을 계산합니다.
- 시작 날짜가 일치하는 Event2 이벤트를 식별합니다. 계산된 날짜.
- 일치하는 Event2 레코드에서 원하는 필드를 추출합니다.
위 내용은 MySQL 셀프 조인은 하루 뒤에 다른 이벤트 이후의 이벤트를 어떻게 찾나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!