Мне нужно объединить две таблицы на основе совпадающих данных времени, и я не знаю, как это сделать в SQL. У меня есть таблица событий и времени, таких, как это:Как связать таблицу событий с таблицей интервалов?
Event_Table
+----------------+-------+
| Event | Time |
+----------------+-------+
| Fire Alarm | 10:00 |
| Smoke Alarm | 13:00 |
| Security Alarm | 16:00 |
+----------------+-------+
У меня также есть таблица интервалов времени, например, это:
Interval_Table
+--------+-------------+-----------+
| Warden | Shift_Start | Shift_End |
+--------+-------------+-----------+
| Jack | 09:00 | 10:30 |
| John | 14:00 | 20:00 |
+--------+-------------+-----------+
мне нужно сделать таблицу событий, которая включает в себя который находился в дежурстве в тот момент:
Output_Table
+----------------+-------+----------------+
| Event | Time | Warden_On_Duty |
+----------------+-------+----------------+
| Fire Alarm | 10:00 | Jack |
| Smoke Alarm | 13:00 | [null] |
| Security Alarm | 16:00 | John |
+----------------+-------+----------------+
Некоторые сдвиги начальника могут перекрываться, но это следует игнорировать; максимальное имя одного смотрителя должно отображаться для каждого события. Таблицы очень большие (~ 500 000 строк). Любые идеи о том, как это можно достичь с помощью SQL?
Вы не можете просто игнорировать дублирование, вы должны указать, какой вы хотите. –