Отобразить все письма с самым высоким идентификатором столбца - PullRequest
0 голосов
/ 13 марта 2020

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

У меня хранится база данных электронных писем. Каждое письмо имеет несколько строк, поэтому, например, электронное письмо test@gmail.com может иметь 4 результата. Единственное, что отличается от результатов, это столбец состояния. Значения статуса могут быть «обработаны», «доставлены», «открыты», «щелкнуть».

Я хочу отображать только электронные письма с самым высоким «id» своего собственного статуса.

Вот моя текущая таблица

enter image description here

Вот что я пытаюсь отобразить.

enter image description here

Я пробовал этот запрос, но он возвращает только одно письмо с самым высоким "id" на всю таблицу.

SELECT email, status FROM sendgrid WHERE template_sent_id = '19454767' ORDER BY id DESC LIMIT 0, 1

1 Ответ

1 голос
/ 13 марта 2020

Один метод является коррелированным подзапросом:

SELECT sg.email, sg.status
FROM sendgrid sg
WHERE sg.template_sent_id = 19454767 AND
      sg.timestamp = (SELECT MAX(sg2.timestamp)
                      FROM sendgrid sg2
                      WHERE sg2.template_sent_id = sg.template_sent_id AND
                            sg2.email = sg.email
                     );

Для повышения производительности вы хотите индексировать sendgrid(template_send_id, email, timestamp).

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