Таблица сообщений
|-----|-------------|-----------------|--------|--------------|
| id | message_id | msg_connect_id | body | created_ts |
|-----|-------------|-----------------|--------|--------------|
| 1 | 12345 | 1234 | body1 | timestamp1 |
| 2 | 12346 | 1234 | body2 | timestamp2 |
| 3 | 12347 | 1234 | body3 | timestamp3 |
| 4 | 12348 | 5678 | body4 | timestamp4 |
| 5 | 12349 | 1234 | body5 | timestamp5 |
|-----|-------------|-----------------|--------|--------------|
При условии, что message_id является параметром запроса, может ли этот запрос быть оптимизирован?
SELECT id,message_id ,body,created_ts FROM message
where msg_connect_id = (select msg_connect_id from message where message_id ='12346')
and id <= (select id from message where message_id ='12346') order by created_ts desc
Я ожидаю, что строка, соответствующая параметру message_id, вместе со всеми строками под ней с одинаковым msg_connect_id.
Так, например если параметр message_id равен 12346, то ожидаемые строки - это строки с id 2, 3 и 5.