Здравствуйте!
Подскажите пожалуйста какой наиболее правильный и быстрый способ выполнить такой запрос a-la:
SELECT ... FROM `troubletickets`, `messages` WHERE `troubletickets`.`status`='Open' AND
`messages`.`ticket_id` = `troubletickets`.`id` AND
MAX (`messages`.`date`) < '01-01-2016' ;
Цель/смысл запроса: выбери тикеты у которых открытый статус и не было сообщений за последнюю неделю/месяц.
Т.е. загвоздка с условием " AND MAX (`messages`.`date`) < '01-01-2016'". MAX() здесь явно не подходит. Как быть?
Спасибо!
1. nfm2 - 15 Октября, 2016 - 16:06:28 - перейти к сообщению
2. Мелкий - 15 Октября, 2016 - 17:52:38 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT FROM troubletickets WHERE STATUS='Open' AND NOT EXISTS (SELECT 1 FROM messages WHERE `messages`.`ticket_id` = `troubletickets`.`id` AND messages.date > now() - interval 1 week)
index troubletickets on status
index messages on ticket_id, date