mySQL: вычитание месяцев от даты и использование в качестве условия в выражении WHERE - PullRequest
0 голосов
/ 08 ноября 2018

С помощью следующего кода я хотел бы определить, было ли для местоположения x, где произошло нарушение, предупреждение выпущено за шесть месяцев до этого.

В предложении where я использую результат функции Date_Sub в качестве условия:

SELECT disruption.disruptionDate, warning.warningID, warning.warningDate
FROM disruption
JOIN warning ON disruption.locationId = warning.locationID
WHERE warning.warningDate <= disruption.disruptionDate  
  AND warning.warningDate. >= DATE_SUB(disruption.disruptionDate, INTERVAL 6 MONTH)
ORDER BY disruption.disruptionDate

Характеристики таблицы:

  • Таблица предупреждений: 44 814 записей
  • таблица сбоев : 962 529 записей

У меня проблемы с производительностью, и я думаю, что это может быть вызвано функцией DATE_SUBв предложении WHERE.Мое исследование здесь принесло только Date_Sub в качестве метода вычитания в течение нескольких месяцев.

Есть ли более эффективный способ написать заявление?

Любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...