我有一个包含用户事件信息的表,即每一行都包含一个 ID、用户的开始日期、完成日期和事件编号。例子:
第 1 行:ID 256 | 开始日期 13360500 | 完成日期 13390500 | 事件编号 3
我正在尝试为已完成事件 3 和 2 的用户交叉所有行,但我无法弄清楚为什么我的查询没有返回任何结果:
SELECT table_id FROM table
WHERE table_EventNum = 3
AND table_FinishDate > 0
AND table_id IN (SELECT table_id FROM table WHERE table_EventNum = 2);
这个没有子查询的查询(与底部的其余部分分开的行)返回一堆非空结果,正如它应该的那样,子查询也返回一堆非空结果(同样,它应该)。但由于某种原因,复合查询根本不返回任何行。我知道IN
如果任一侧的表达式为 NULL,该命令将返回 NULL,但由于两个查询都返回结果,我不确定还有什么可能导致这种情况。
有任何想法吗?谢谢!