SQL-запрос для фильтрации, если столбец даты в одной таблице не существует в диапазоне дат в объединенной таблице? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть две таблицы, которые выглядят так:

Таблица 1:

ID  |  Timestamp
231   3/27/19 0:46
345   3/22/19 22:46

Таблица 2:

ID  |  Start Time   |  End Time
231   3/27/19 0:00    3/27/19 0:58
345   3/22/19 22:50   3/22/19 23:50

Есть ли хороший метод, в котором я хочу, чтобы все строки в таблице 1 не существовали ни в одном начальном и конечном диапазоне времени ни в одной строке в таблице 2?

Таким образом, любые строки в таблице 1, где эта временная метка не находится на таймфрейме или между ними, одинаковые время начала и окончания идентификаторов в таблице 2?

Спасибо за время!

1 Ответ

1 голос
/ 28 марта 2019

Как то так?

SELECT * 
FROM TABLE1 
WHERE NOT EXISTS (SELECT NULL FROM TABLE2 
                  WHERE TABLE1.ID = TABLE2.ID 
                    AND TABLE1.TIMESTAMP >= TABLE2.START_DATE 
                    AND TABLE1.TIMESTAMP <= TABLE2.END_DATE)

Я назвал ваши столбцы START_DATE и END_DATE. Как обрабатываются пробелы между каждой БД.

...