首页 > 数据库 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板