sql - SQL 查询从表中选择不存在于不同表开始和结束时间字段中的所有行?
问题描述
我有 table1 我想要返回的行在表 2 中相同的 id 开始和结束时间戳字段中不存在。我有下面的查询,但它返回 0 行。我看不出我做错了什么?
SELECT table1.*
FROM table1
WHERE table1.day = date '03-04-19'
AND NOT EXISTS
(SELECT NULL
FROM table2
WHERE table1.id = table2.id
AND table1.timestamp >= table2.start_time
AND table1.timestamp <= table2.end_time)
解决方案
也许您的问题只是您的日期格式:
SELECT table1.*
FROM table1
WHERE table1.day = date '2019-04-03' AND
NOT EXISTS (SELECT 1
FROM table2
WHERE table1.id = table2.id AND
table1.timestamp >= table2.start_time AND
table1.timestamp <= table2.end_time
);
推荐阅读
- php - 使用 htaccess 或 PHP 进行 url 重写
- git - Git 拉取所有引用远程仓库中与我的本地仓库无关的单个文件的提交
- c# - Microsoft Project Online OData 异步查询
- sql - 如何从 SQL 2016 中 FOR JSON PATH 的结果中删除密钥
- python - 将 DataFrame 列重塑为多列,将其他列重塑为行
- python - 在不删除行的情况下堆叠 Pandas 数据框
- javascript - 需要一个异步函数,在另一个函数中运行,返回一个布尔值而不是一个承诺
- google-apps-script - 检查 Google 表单回复的某些标准,然后通过电子邮件回复
- java - 解析失败:java/nio/file/Paths;
- css - 移动版 Flexbox 表单没有响应