Нужно, чтобы записи, соответствующие определенной дате, сверялись только с записями, имеющими самую последнюю дату - PullRequest
0 голосов
/ 12 апреля 2019

Есть таблица, которая содержит журналы запроса. Таблица может содержать несколько журналов одного запроса. Мне нужны записи, которые соответствуют определенной дате, и они должны проверяться только с записями, имеющими самую последнюю дату.

Ниже мой код. Пожалуйста, помогите мне с этим

SELECT email_log.enquiry_id,email_log.email_log_date,enquiry.en_movetype,enquiry.en_unique_id, enquiry.en_movetype,enquiry.en_fname,enquiry.en_date,email_log.email_log_id 
from email_log 
JOIN enquiry ON email_log.enquiry_id = enquiry.enquiry_id 
WHERE email_log.email_log_date = DATE_FORMAT('2019-04-05 12:53','%Y-%m-%d %H:%i')
GROUP BY email_log.enquiry_id
ORDER By email_log.email_log_date DESC

Прямо сейчас я получаю следующий результат. enter image description here

Это дает мне даты, которые соответствуют только данным датам. Я хочу проверить с запросом, у которого maximun email_log_date зарегистрирован.

На изображении ниже адреса email_log_id 15 и 28 являются последними. Я хочу, чтобы запрос проверял, соответствуют ли эти две записи конкретной дате. Если он совпадает, он должен вернуть эти записи.

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Кажется, вы ищете дату рекорд на 2019-04-05

SELECT email_log.enquiry_id
    ,email_log.email_log_date
    ,enquiry.en_movetype
    ,enquiry.en_unique_id
    , enquiry.en_movetype
    ,enquiry.en_fname
    ,enquiry.en_date
    ,email_log.email_log_id 
from email_log 
JOIN enquiry ON email_log.enquiry_id = enquiry.enquiry_id 
WHERE email_log.email_log_date = date(str_to_date( '2019-04-05 12:53:00','%Y-%m-%d %T'))

это может означать, что вы хотите журнал за последнюю дату

SELECT email_log.enquiry_id
    ,email_log.email_log_date
    ,enquiry.en_movetype
    ,enquiry.en_unique_id
    , enquiry.en_movetype
    ,enquiry.en_fname
    ,enquiry.en_date
    ,email_log.email_log_id 
from email_log 
JOIN enquiry ON email_log.enquiry_id = enquiry.enquiry_id 
INNER JOIN  (
  SELECT max( date( email_log.email_log_date)  as max_date 
  from email_log 
  JOIN enquiry ON email_log.enquiry_id = enquiry.enquiry_id 

) t On t.max_date  = date( email_log.email_log_date) 
0 голосов
/ 12 апреля 2019

Я думаю, что использование Max или First функции SQL может помочь

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