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 절
조인할 테이블을 지정합니다.
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)
시작일이 event1의 해당 행 종료일 다음 날과 일치하는 event2의 행을 찾습니다.
WHERE 절
지정된 조건에 따라 결과를 필터링합니다.
WHERE event1.id=$id
id가 주어진 변수 $id와 일치하는 event1의 행을 선택합니다.
SELECT 절
이것은 선택합니다 결합된 행에서 원하는 필드:
SELECT event2.id, event2.startdate, event2.price
It 지정된 이벤트(event1) 이후의 이벤트에 대한 정보가 하루 단위로 포함된 event2 인스턴스에서 ID, 시작 날짜 및 가격을 검색합니다.
시각적 데모
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 자체 조인을 통해 동일한 테이블 내에서도 지정된 기준에 따라 관련 행을 식별할 수 있는 방법을 보여줍니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3