sql - SQL查询同一张表中多列的where子句
问题描述
拥有以下数据库:
尝试执行以下查询:
select *
from data_five_minutes
where ((open in (select open
from data_five_minutes
where date_time = '2019-01-02 13:15:00')) >
(open in (select open
from data_five_minutes
where date_time = '2019-01-01 11:10:00')))
上面的查询给了我结果给我 3 个结果,但我期待 0!
我试图获取的是:- 获取 02/01 13:15 的开盘 > 01/01 11:10 的开盘,两者的 script_id 相同。
解决方案
您可以使用EXISTS
:
SELECT d1.*
FROM data_five_minutes d1
WHERE d1.date_time = '2019-01-02 13:15:00'
AND EXISTS (
SELECT 1
FROM data_five_minutes d2
WHERE d2.date_time = '2019-01-01 11:10:00'
AND d2.script_id = d1.script_id
AND d2.open < d1.open
);
推荐阅读
- javascript - 在表单中创建输入的按钮出现问题
- flutter - 颤振列表错误参数类型'List'不能分配给参数类型'String'
- idl-programming-language - IDL 中不同分辨率的掩码/CLIP 光栅图像
- java - 如何获取 Firestore 集合中所有文档的名称(字段)?
- c - 所有操作后如何显示堆栈的大小
- c - 带有 memcpy 的列表中的分段错误
- reactjs - Apollo React subscribeToMore 不更新数据
- python - 当我尝试在我的 pycharm 项目中运行脚本时,我收到错误消息说找不到 python.exe 文件
- firebase - 如何在firebase中设置重复项目?
- sql-server - 如何只显示一个值结果(全外连接)