У меня есть одна таблица со следующими данными, я хочу пропустить строку 3, просто хочу получить статус OPEN только один раз, я использую запрос ниже, но он также пропускает строку 5.
SELECT t.*
FROM emailEvent t
JOIN
( SELECT MIN(id) AS minid
FROM emailEvent WHERE email_id = 3
GROUP BY status
) AS grp
ON grp.minid = t.id
WHERE (t.email_id = 3)
Я придумал это как решение, но не уверен, есть ли другое лучшее решение для этого
SELECT t.*
FROM emailEvent t
WHERE t.status != "Open" and t.email_id = 3
UNION
(
SELECT et.*
FROM emailEvent et
WHERE et.status = "Open" and et.email_id = 3
ORDER BY et.createdAt DESC LIMIT 1
)
I want the result to be look like something like this
введите описание изображения здесь