>데이터 베이스 >MySQL 튜토리얼 >데이터베이스에서 취소되지 않은 예약 기록을 검색하는 방법은 무엇입니까?

데이터베이스에서 취소되지 않은 예약 기록을 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-23 19:46:44672검색

How to Retrieve Uncancelled Reservation Records from a Database?

취소되지 않은 예약 기록 검색

reservation에 일반 예약 정보가 포함되어 있고 Reservation_log가 예약에 대한 변경 사항(취소 포함)을 추적하는 booking 및 Reservation_log라는 두 개의 테이블이 있는 경우 작업은 다음과 같습니다. 취소되지 않은 예약을 추출하는 것입니다. 간단한 WHERE 절은 취소된 예약을 식별하는 데 효과적이지만 취소되지 않은 기록을 검색할 때는 부족합니다.

다행히도 이 작업을 수행하기 위해 두 가지 접근 방식을 사용할 수 있습니다.

접근 방법 1: NOT 사용 IN

이 방법은 NOT IN 절을 활용하여 취소가 일치하는 예약을 제외합니다. records.

SELECT *
FROM reservation
WHERE id NOT IN (
  SELECT reservation_id
  FROM reservation_log
  WHERE change_type = 'cancel'
);

접근 방식 2: LEFT JOIN 사용

대체 접근 방식은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.