MySQL 셀프 조인 이해
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
로그인 후 복사
쿼리 분석:
FROM 및 JOIN:
- 이 쿼리는 JOIN 키워드를 사용하여 두 개의 동일한 테이블인 mm_eventlist_dates의 데이터를 결합합니다.
- 동일한 테이블을 두 번 나타내는 두 개의 가상 테이블인 event1과 event2를 생성합니다.
WHERE:
- 이 절은 ID를 기준으로 event1의 특정 레코드를 선택합니다. 이 레코드가 Event1을 나타낸다고 가정합니다.
ON:
- 이 절은 두 가상 테이블 간의 관계를 정의합니다.
- 이벤트2의 시작일과 이벤트1의 종료일을 하루 차감하여 비교합니다.
- 이 조건을 사용하면 이벤트2의 시작일이 이벤트1 종료 후 정확히 하루가 되어야 합니다.
SELECT:
- 이 절은 쿼리에서 검색하려는 필드를 지정합니다.
- 이 경우 ID, 시작 날짜를 선택합니다. 및 event2의 가격.
쿼리 작동 방식:
- 쿼리는 먼저 전달된 지정된 ID와 일치하는 event1의 레코드를 식별합니다. $id 변수입니다.
- event1에서 식별된 레코드에 대해 종료 날짜로부터 1일 후의 날짜를 계산합니다.
- 그런 다음 계산된 날짜를 이벤트의 레코드 시작 날짜와 비교합니다. event2.
- event1과 event2는 동일한 테이블이므로 event2에서 유일하게 일치하는 레코드의 시작 날짜는 event1이 끝난 후 1일입니다.
- event2의 이 일치 레코드는 다음 이벤트를 나타냅니다. (Event2)는 Event1 다음 날 발생합니다.
- 마지막으로 쿼리는 Event2의 ID, 시작 날짜, 가격을 검색하여 결과로 표시합니다.
위 내용은 MySQL Self-Joins는 하루 연속으로 발생하는 이벤트를 찾는 데 어떻게 도움이 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!