Это мой текущий запрос mysql.Могу ли я отфильтровать мои результаты с предложением WHERE на основе результата из подзапроса в MySQL?
SELECT t.id, t.customer, t.indicator_tag, t.indicator_manu, t.indicator_model, t.created_at, t.updated_at,
(SELECT status FROM events WHERE ticket_id = t.id ORDER BY created_at DESC LIMIT 1) AS status,
(SELECT CONCAT(firstName, ' ', lastName) FROM users WHERE id = t.created_by) AS created_by,
(SELECT CONCAT(firstName, ' ', lastName) FROM users WHERE id = t.updated_by) AS updated_by
FROM tickets t
WHERE status = 'Pending' OR status = 'Diagnosed' OR status = 'Repaired'
ORDER BY t.customer ASC, status ASC, t.indicator_tag ASC;
Предложение WHERE в приведенном выше описании не вызывает ошибок, но также не фильтрует ничего. Я до сих пор довольно новичок в SQL, поэтому я еще не слишком глубоко разбираюсь в JOINS. Следует также отметить, что таблица событий будет иметь несколько событий для каждого билета и что подзапрос в строке 2 будет просто захватывать новейший. Есть ли способ фильтровать результаты на основе данных из другой таблицы, но при этом захватывать только самое новое событие для каждого билета?
Говоря иначе:
СТОЛ билетов МНОГО события
события ПРИНАДЛЕЖИТ билет
В приведенном выше примере будет показывать результат, который я получаю. Обратите внимание, что это показывает только самый новый статус, а не все события, подобные тому, который он сделал бы на одной странице билета. Если бы я мог предоставить больше информации, я был бы рад помочь.