집 >데이터 베이스 >MySQL 튜토리얼 >동일한 테이블의 행을 비교하기 위해 MySQL에서 셀프 조인은 어떻게 작동합니까?
MySQL 셀프 조인은 어떻게 작동하나요?
MySQL의 셀프 조인에는 동일한 테이블의 두 인스턴스를 조인하는 작업이 포함됩니다. 다른 별칭. 특정 기준에 따라 동일한 테이블의 행을 비교할 수 있습니다.
The Query explain
주어진 쿼리를 분석해 보겠습니다.
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 절
조인할 테이블을 지정합니다.
FROM mm_eventlist_dates event1 JOIN mm_eventlist_dates event2
동일한 테이블 mm_eventlist_dates가 두 번 사용되며 event1 및 event2라는 별칭이 지정됩니다.
ON 절
조건에 따라 테이블의 두 인스턴스를 조인합니다.
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
event2에서 시작 날짜가 일치하는 행을 찾습니다. event1의 해당 행의 종료일 다음 날.
WHERE 절
지정된 조건에 따라 결과를 필터링합니다.
WHERE event1.id=$id
id가 주어진 변수인 $id와 일치하는 event1의 행을 선택합니다.
SELECT 절
이렇게 하면 결합된 행에서 원하는 필드가 선택됩니다.
SELECT event2.id, event2.startdate, event2.price
event2 인스턴스에서 ID, 시작일, 가격을 검색하는데, 여기에는 지정된 이벤트(event1) 이후의 이벤트에 대한 정보가 하루 단위로 포함되어 있습니다.
시각적 시연
mm_eventlist_dates 테이블에 다음 레코드가 있다고 가정해 보세요.
event1.id | event1.enddate | event2.id | event2.startdate |
---|---|---|---|
1 | 2023-03-01 | 2 | 2023-03-02 |
3 | 2023-03-03 | 4 | 2023-03-04 |
주어진 쿼리 사용:
이는 MySQL 자체 조인을 사용하여 지정된 항목을 기반으로 관련 행을 식별하는 방법을 보여줍니다. 동일한 테이블 내에서도 기준이 적용됩니다.
위 내용은 동일한 테이블의 행을 비교하기 위해 MySQL에서 셀프 조인은 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!