mysql - 车库里有多少辆车?在两个表中选择(Mysql)
问题描述
情况:
我有一张有五辆车的桌子。
桌车:id_car、name_car
在另一张表中是汽车在车库外的时间段。
缺勤表:id_absence、car_id、department_date、return_date
问题:选择某一天(例如当天)在车库中的汽车。
很多天后,我来到:
SELECT c.*, a.*
FROM cars c
LEFT JOIN absences a
ON c.id_car = a.car_id
AND ('2019-04-02' NOT BETWEEN a.departure_date AND a.return_date)
它不起作用,因为尽管汽车不存在,但它似乎已被选中,其余字段为 NULL。
使用 INNER JOIN 它也不起作用。
解决方案
对您的查询进行一些修复,使其成为“反加入”:
SELECT c.*
FROM cars c
LEFT JOIN absences a
ON c.id_car = a.car_id
AND '2019-04-02' BETWEEN a.departure_date AND a.return_date
WHERE a.car_id IS NULL
使用 NOT EXISTS 子查询可以获得相同的结果:
SELECT c.*
FROM cars c
WHERE NOT EXISTS (
SELECT *
FROM absences a
WHERE c.id_car = a.car_id
AND '2019-04-02' BETWEEN a.departure_date AND a.return_date
)
推荐阅读
- pandas - TypeError:“时间戳”和“numpy.float64”的实例之间不支持“<=”
- javascript - 已弃用的 WebSpeech API 函数的替代方案
- swift - 如何在 swift 5 中的文档目录中写入新的一行 CSV 文件?
- python - python中按类别分类的折线图颜色
- python - 自定义损失函数约束的条件替换?TypeError:“张量”对象不支持项目分配
- python - 如何使用 read() 函数跳过 python 中的第一行?
- linux - 我们可以有一个多阶段的 Dockerfile,其中 FROM 下的图像可能与不同的 linux OS 发行版有关
- javascript - Content-Security-Policy 不会加载相同站点的 javascript
- ruby-on-rails - 检测每月半月双周日期的算法
- javascript - 我在尝试运行“react-native run-android”时遇到了这个错误。我已经厌倦了很多解决方案,但似乎都不起作用。我只需要一个成功的构建