У меня есть следующие три таблицы (упрощенный вариант):SQL жесткий запрос: события между другими событиями
levelsloaded:
- Идентификация (Int, первичный ключ, автоматический инкремент)
- globalId (Int , ключ)
- дата (Datetime, Key)
- идентификатор_сервера (Int, Key)
- gamemodeId (Int, Key)
- МАПИД (Int, Key)
playerjoins:
- идентификатор (Int, первичный ключ, автоматический инкремент)
- globalId (Int, Key)
- даты (DateTime, Key)
- идентификатор_сервера (Int, Key)
- playerId (Int, Key)
playerleaves:
- идентификатор (Int, первичный ключ, автоматический инкремент)
- globalId (Int, Key)
- даты (DateTime, Key)
- идентификатор_сервера (Int, Key)
- playerId (Int, Key)
Я уже несколько часов думал об этом запросе, но я не могу понять это. Я хочу это: Выберите все строки из уровней, где уровень загружен в тот момент, когда игрок играл на сервере.
Я попытался уточнить «вопрос», но это сделало бы его неясным.
Пример картина здесь:
Вы видите различные уровня загружены события:
- Один на
16:22:57
желанной, как это произошло после того, как я присоединился к серверу (и до того, как я покинул сервер) - Те, что были на
15:51:29
и15:37:10
, не должны происходить, поскольку я не играл на сервере.
Я знаю, что этот запрос определенно возможно, однако я не думаю, что это тривиальный запрос.
Любая помощь по этому вопросу будет оценена по достоинству. Также очень ценятся предложения по его решению.
EDIT: Мне удалось уточнить запрос немного. Шаг FIrst для получения решения будет состоять в следующем: создать подзапрос, который получает, получает каждый уровень нагрузки между соединением игрока и выходом игрока, только как это получить? Рассмотрим следующую таблицу событий:
- карта 1 грузы
- игрок А присоединяется
- карта 2 грузы
- карта 3 нагрузки
- игрок А листья
- карта 4 нагружает
- игрока A
- map 5 грузы
- карта 6 нагрузок
- игрок А оставляет
- карте 7 нагрузок
- карта 8 нагрузок
Тогда только правильные результаты будут: карта 2, 3, 5 и 6. Так мне нужно чтобы выполнить итерацию по набору результатов и получить все карты, которые происходят между соединением игрока, и оставить следующего игрока, а затем перейти к следующей строке.
Фотографии? Это не то, как мы катимся. И оружие - это не слово. – Strawberry
@Strawberry Well Я думаю, что картина лучше, чем вообще нет картинки ... – skiwi