Мне нужна помощь в построении запроса. Проблема в том, что у меня нет прав на внесение изменений в конструкцию базы данных. Имея это в виду, мои таблицы выглядит следующим образом:Сложный кросс-табличный запрос
Problems
ID
Дата
LastStory
UserAssignedTo
Stories
ID
ProblemID
UserThatMadeTheStory
DateOfStory
Статус
Как хранятся данные: Любой пользователь системы может создать «проблему». Каждый раз, когда создается проблема, также есть строка, вставленная в таблицу «Истории», ссылающаяся на «ProblemID» в таблице «Проблемы» с статусом «2» и с «UserThatMadeTheStory», назначенной фактическому пользователю, который сделал «Проблему ». Позже проблема «Reasigned» для других пользователей. Этот процесс Создает запись «Истории» с описанием и с помощью «UserThatMadeTheStory», измененной для пользователя, который ее назначил, в то же время в таблице «Проблемы» заменяется «UserAssignedTo» для сохранения нового пользователя к. Затем, чтобы узнать, что ВОЗ действительно открыла проблему, я должен искать первую запись в «Истории», которая имеет «Проблемную ошибку», соответствующую той, которую я хочу знать.
Теперь проблема у меня есть это:
У меня есть для поиска для, позволяет сказать, в прошлом месяце, проблемы, созданные пользователем. Как это будет запрос?
EDIT:
SELECT s.*
FROM stories s
INNER JOIN (SELECT problemid, min(id) AS Id FROM stories GROUP BY problemid) s2 ON s.id = s2.id
INNER JOIN (SELECT UserThatMadeTheStory, DateOfStory, Id FROM stories) s3 ON s2.id = s3.id
WHERE s3.UserThatMadeTheStory = <the one you're interested in>
AND s3.DateOfStory = <dates you're interested in>
Это работает, как задумано, теперь я ругой выпустить ...
Если вы можете мне помочь ... Я должен Перечислите проблемы, которые были СОЗДАНО пользователем X. И Havent есть какие-либо «истории» в Lets говорят «Последние 2 дня» (или любую дату, указанную [Это может быть внешний вход для запроса])
Этот DID работает по назначению. Я должен был внести некоторые изменения в запрос из-за некоторых минимальных ошибок (используя «min (id) в качестве идентификатора), а окончательное« Where s2.UserThatMadeTheStory »и« s2.DateOfStory »нужно было заменить на« s ». из s2 – Loki
с использованием s.UserThatMadeTheStory не даст вам обратно пользователя, который изначально поднял проблему. Я отредактировал свой ответ - дайте попробовать. – StevieG
Исправлено. Работаю в качестве очарования. Спасибо за исправление. Теперь у меня есть большая проблема. Если вы можете мне помочь ... Мне нужно пересмотреть проблемы, которые были созданы пользователем X. И HAVENT получили ЛЮБОЕ «рассказы» в let say «48hours» (или любая дата указана) – Loki