reservation에 일반 예약 정보가 포함되어 있고 Reservation_log가 예약에 대한 변경 사항(취소 포함)을 추적하는 booking 및 Reservation_log라는 두 개의 테이블이 있는 경우 작업은 다음과 같습니다. 취소되지 않은 예약을 추출하는 것입니다. 간단한 WHERE 절은 취소된 예약을 식별하는 데 효과적이지만 취소되지 않은 기록을 검색할 때는 부족합니다.
다행히도 이 작업을 수행하기 위해 두 가지 접근 방식을 사용할 수 있습니다.
이 방법은 NOT IN 절을 활용하여 취소가 일치하는 예약을 제외합니다. records.
SELECT * FROM reservation WHERE id NOT IN ( SELECT reservation_id FROM reservation_log WHERE change_type = 'cancel' );
대체 접근 방식은 LEFT JOIN 작업을 사용하는 것입니다. 왼쪽 조인은 예약 테이블에서 모든 행을 검색하고, Reservation_log 테이블에서 해당 행이 있는 경우 이를 포함합니다. 일치하는 취소 기록이 없는 행의 Reservation_log 열에는 NULL 값이 있습니다. 그런 다음 WHERE 절을 사용하여 이러한 행을 필터링할 수 있습니다.
SELECT r.* FROM reservation r LEFT JOIN reservation_log l ON r.id = l.reservation_id AND l.change_type = 'cancel' WHERE l.id IS NULL;
위 내용은 데이터베이스에서 취소되지 않은 예약 기록을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!