У меня есть таблица, содержащая информацию о событиях для пользователей, т. е. каждая строка содержит идентификатор, дату начала пользователя, дату завершения и номер события. Пример:
Ряд 1: ID 256 | Дата начала 13360500 | Дата окончания 13390500 | EventNum 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, но поскольку оба запроса возвращают результаты, я не уверен, что еще может вызвать это.
Любые идеи? Спасибо!