首頁 > 資料庫 > mysql教程 > 如何從資料庫中檢索未取消的預訂記錄?

如何從資料庫中檢索未取消的預訂記錄?

Mary-Kate Olsen
發布: 2025-01-23 19:46:44
原創
670 人瀏覽過

How to Retrieve Uncancelled Reservation Records from a Database?

檢索未取消的預訂記錄

給定兩個表,reservation 和reservation_log,其中reservation 包含一般預訂信息,reservation_log 跟踪對預訂所做的更改(包括取消),該任務是提取尚未取消的預訂。一個簡單的 WHERE 子句可以有效地識別已取消的預訂,但在搜尋未取消的記錄時效果不佳。

幸運的是,可以採用兩種方法來完成此任務:

方法1:使用NOT IN

此方法利用NOT IN 子句來排除具有匹配取消的預訂

SELECT *
FROM reservation
WHERE id NOT IN (
  SELECT reservation_id
  FROM reservation_log
  WHERE change_type = 'cancel'
);
登入後複製

方法2:使用LEFT JOIN

另一種方法是使用 LEFT JOIN 運算。左連線會擷取預訂表中的所有行,並包括預訂日誌表中的對應行(如果存在)。沒有匹配取消記錄的行在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板