Добрый день! Не получается оптимизировать запрос MYSQL. Хотелось бы не использовать промежуточный приемник (PHP array).
Суть задачи: Выбрать сообщения из Table_1 для которых нет больше топиков на форуме (Table_2).
Table_1 - messages
---------------------
id|topic_id|message|
---------------------
1 | 80777 | mes1 |
---------------------
2 | 80777 | mes2 |
---------------------
3 | 80779 | mes3 |
---------------------
Table_2 - topics
--------------------------
id | posted | author |
--------------------------
80776 | data | name 1 |
--------------------------
80777 | data | name 2 |
--------------------------
80778 | data | name 3 |
--------------------------
mysql> SELECT topic_id, message FROM Table_1 WHERE topic_id NOT IN (SELECT id FROM Table_2);
Empty set (5.88 sec) !!!
По отдельности левая и правая часть запроса отрабатываются очень быстро. Предпринимал GROUP BY topic_id для Table_1с целью ускорения, но проблемы не решило кардинально.